【发布时间】:2016-03-31 18:16:24
【问题描述】:
我正在尝试将需要进入一列的选择查询的值插入到另一个表中,以及如下所示的其他几列。 列的数据类型。
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 行附近预期有数字的地方发现了一个非数字字符。谁能指出我有什么问题,或者是否有更好的方法来做到这一点。谢谢!
【问题讨论】:
-
col1, ... col5的数据类型是什么?此错误与使用日期格式模型转换为日期有关。
-
请edit 您的问题并为
table1添加完整的CREATE TABLE语句。不相关,但是:select部分中列列表周围的括号完全没用。 -
大概
col1是一个日期,而您没有显示的子查询正在返回一个无法隐式转换为日期的字符串。尽管很难说出你真正在做什么,但你已经改变和隐藏了很多。你现在有太多的括号,首先,这会导致 ORA-00907 与你所显示的一样。如果您显示您的实际查询和表定义会容易得多。 -
或
col4属于CHARtype :) -
在问题上添加了列类型。子查询返回数字,需要在 col1 中插入。希望这是有道理的。谢谢