Oracle 11g" INSERT INTO SELECT"行为不端

时间:2014-10-02 14:40:14

标签: oracle oracle11g

我正在尝试使用以下示例查询做一个非常简单的事情(不能发布实际查询:()

INSERT INTO学生(id,roll_number,Student_name) 选择1,2,' MyName' FROM DUAL;

ID列设置了NOT NULL约束。当我执行此查询时,我收到以下错误: SQL错误:ORA-01400:无法插入NULL(" SCHEMA"。"学生"。" ID") 01400. 00000 - "无法将NULL插入(%s)"

ID列的数据类型为NUMBER。

任何人都可以帮助解决问题。

提前致谢。

2 个答案:

答案 0 :(得分:0)

我要做的是单独运行Select部分,然后查看返回的数据。即

Select First_Field, Second_Field, 'Bob'
From MyTable
Where First_Field = NULL;

这给了你什么。你也可以这样做:

Select count(*)
From MyTable
Where coalesce(First_Field,1) =1;
顺便说一句,你说你的领域是一个数字,但只是FYI。 A''插入到varchar2字段中会被解释为NULL。找到了困难的方法

答案 1 :(得分:0)

好像我正在养成回答自己问题的习惯......

当我仔细查看表格时,我发现有两个ID列(当然有不同的名称):

一列存储此表的主键,而 其他列将外键存储为其他表的链接。

感谢大家的回复,让我想知道我做错了什么。

谢谢Ton:)