oracle中insert into语句问题
数据库:oracle10g表结构:c1、c2、c3insertinto语句:insertintotablevalues(1,2,3),插入数据是成功的。现在情况是这个样子...
数据库:oracle 10g
表结构:c1、c2、c3
insert into 语句:insert into table values (1,2,3),插入数据是成功的。
现在情况是这个样子的:
sql语句是insert into table values (1,2),没有c3这个字段,插入数据的时候就会提示失败,但是我们又没法修改sql语句,因为这个是在一个软件里面。并且数据库中c3字段也不能删除掉。有不有什么办法可以解决这个问题呢? 展开
表结构:c1、c2、c3
insert into 语句:insert into table values (1,2,3),插入数据是成功的。
现在情况是这个样子的:
sql语句是insert into table values (1,2),没有c3这个字段,插入数据的时候就会提示失败,但是我们又没法修改sql语句,因为这个是在一个软件里面。并且数据库中c3字段也不能删除掉。有不有什么办法可以解决这个问题呢? 展开
6个回答
展开全部
先建一个表TAB1,把原来的表的数据都导入到这个TAB1,然后修改原来的表的结构,删除C3。就正常了。
然后在原来的表上创建触发器,当插入数据时,自动同步到TAB1。
或者向视图中插入数据。
然后在原来的表上创建触发器,当插入数据时,自动同步到TAB1。
或者向视图中插入数据。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
原表改名,用原表建视图指向原表的c1和c2,可以解决插入的问题。或者建张新表,用触发器与原表关联。
追问
貌似可行,我试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-10-22 · 知道合伙人数码行家
关注
展开全部
insert into table values(1,2,null);试过么?我还是没大懂你的意思,到底有没有这个字段?
让c3是null就可以了吧!
让c3是null就可以了吧!
更多追问追答
追问
有c3这个字段,只是sql语句不能更改。
追答
插入null
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以试试把c3这个字段先设置为unused,插入完了之后再启用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果这个软件是开源的,你可以写一个转换的方法放进去。如果看不到源代码那你只能修改数据库了
追问
软件没法修改,就算修改也要几个月时间才能拿到。所以我不知道有不有别的办法能解决,比如存储过程之类的,我不熟悉数据库的高级用法。
追答
你不能修改SQL当然存储过程也是没用的,就算是调用存储过程也要修改代码,修改SQL的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询