从oracle中的select查询插入表中

时间:2016-03-31 18:16:24

标签: oracle select insert

我正在尝试将需要进入列的select查询的值插入到另一个表中,以及其他几个列,如下所示。 列的数据类型。

col1-number,col2-number,col3-varchar,col4-date,col5-char(1),col6-char(1)

insert into table1 (col1, col2, col3, col4, col5, col6, col7)
select ( uid, 22, 'HTML', sysdate,'null','null','N')
from ( select query here)

但是当我运行上面的查询时,我收到一个错误 - ORA-01858:发现一个非数字字符,其中数字在上述查询的第2行附近。任何人都可以指出我有什么问题,或者有更好的方法来做到这一点。谢谢!

1 个答案:

答案 0 :(得分:3)

'null'是一个字符串。据推测,col5col6是一个数字列,我们无法将该字符串转换为数字。

要在这些列中不插入任何值,请使用null关键字,如下所示:

insert into table1 (col1, col2, col3, col4, col5, col6, col7)
select ( uid, 22, 'HTML', sysdate, null, null,'N')
from ( select query here)

或者从插入投影中删除它们:

insert into table1 (col1, col2, col3, col4, col7)
select ( uid, 22, 'HTML', sysdate, 'N')
from ( select query here)