gpt4 book ai didi

oracle - Oracle序列:此处不允许使用CURRVAL吗?

转载 作者:行者123 更新时间:2023-12-05 01:12:54 25 4
gpt4 key购买 nike

以下Oracle SQL代码生成错误“ ORA-02287:此处不允许使用序列号”:

INSERT INTO Customer (CustomerID,Name) VALUES (Customer_Seq.nextval,'AAA');
SELECT * FROM Customer where CustomerID=Customer_Seq.currval;


错误发生在第二行(SELECT语句)。我不太了解这个问题,因为这确实有效:

INSERT INTO Customer (CustomerID,Name) VALUES (Customer_Seq.nextval,'AAA');
SELECT Customer_Seq.currval from dual;

最佳答案

您已经发布了一些示例代码,因此尚不清楚您要实现的目标。如果您想知道分配的值,请说要传递给其他过程,您可以执行以下操作:

SQL> var dno number
SQL> insert into dept (deptno, dname, loc)
2 values (deptno_seq.nextval, 'IT', 'LONDON')
3 returning deptno into :dno
4 /

1 row created.

SQL> select * from dept
2 where deptno = :dno
3 /

DEPTNO DNAME LOC
---------- -------------- -------------
55 IT LONDON

SQL>


编辑

我们可以使用RETURNING子句获取任何列的值,包括那些使用默认值或触发代码设置的值。

关于oracle - Oracle序列:此处不允许使用CURRVAL吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1438454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com