例如
SQL> create table dates(d date);
Table created.
SQL> insert into dates select sysdate from dual;
1 row created.
SQL> select * from dates;
D
---------
28-MAY-11
SQL> insert into dates (d) values (select sysdate fom dual);
insert into dates (d) values (select sysdate fom dual)
*
ERROR at line 1:
ORA-00936: missing expression
SQL>
如果要使用仅允许单个值的 SELECT 语句,则需要将该 SELECT 语句放入括号中:
这可以扩展到多列:
您只需要确保 SELECT 恰好返回一行和一列
我认为在不知道的情况下(我不做 Oracle,所以没有盒子可以尝试),问题就在这里:
试试这个:
因为括号告诉语法括号内的值是一个值,而不是产生值的语句。我想,如果您真的想要更深入的解释,我可以在 SQL 语言规范中为您查找。
我想这只是一个历史事实。
只是还没有那样做。
从 SQL Server 我知道他们在 2005 年到 2008 年之间释放了这样的限制,当我们在 2005 年运行这样的脚本时,我们经常会遇到问题。