sql插入问题

时间:2016-04-19 16:38:27

标签: sql oracle sql-insert

这有点难以解释,但会尽量解释。

我有table1,其中列b和键为a列。

我正在尝试基于select语句插入到table1中。

例如:

insert into table1(a,b) 
 select xyz.adata , getbdata(xyz.c) from xyztable xyz where xyz.adata = 234

我的功能很大,所以要保持简单

假设getbdata(int c)函数有 类似于(xyz.c - othertable.d - table1.b)的给定键,

当我执行select时,会正确返回getbdata(xyz.c)值。

但是当我根据select进行插入时,列b数据没有得到 正确插入。

例如)如果xyz.c为50,othertable.d = 10且table1.b = 0

select xyz.adata , getbdata(xyz.c) 
from xyztable xyz 
where xyz.adata = 234

会返回类似

的内容
adatavalue , 40

但是当我根据上面选择插入表1进行插入时,

它将返回类似

的内容
adatavalue , 0 

(我认为它确实像50-10-40这样)

Bottomline - 我在尝试基于select进行插入时遇到问题,而select又会在同一个表上进行一些计算。

我总是可以从上面的select语句中获取数据并将其放在游标中,然后尝试插入到table1中。

但是为什么基于select语句的插入失败。

0 个答案:

没有答案