美好的一天,
我试图在我的查询中使用pl / sql变量(我是一个sql server人),这是我的代码:
DECLARE
nextvalue integer;
BEGIN
SELECT submission_seq.currval INTO nextvalue FROM DUAL;
dbms_output.put_line('test');
dbms_output.put_line(nextvalue);
/* ERROR OCCURS HERE */
SELECT nextvalue, id FROM TABLE_STATUS;
END;
我收到了PLS-00428:这个SELECT语句中应该有一个INTO子句。
我不明白我为什么会这样,因为我用一个来填充nextvalue 包含我想要的东西。
任何人都可以帮助我吗?
TIA,
COSON
答案 0 :(得分:1)
这是因为,正如消息所描述的那样,select语句希望您将结果分配给变量。
尝试:
DECLARE
nextvalue integer;
result table_status%type;
BEGIN
SELECT submission_seq.nextval INTO nextvalue FROM DUAL;
dbms_output.put_line('test');
dbms_output.put_line(nextvalue);
SELECT id INTO result FROM TABLE_STATUS;
END;
答案 1 :(得分:0)
保险已经开始了?
更改此
SELECT submission_seq.currval INTO nextvalue FROM DUAL;
这个
SELECT submission_seq.nextval INTO nextvalue FROM DUAL;
答案 2 :(得分:0)
如果您使用的是Oracle 11g,那么您不必再从双重中进行选择。下面的代码片段可以使用。
/* Formatted on 1/25/2013 4:35:00 PM */
DECLARE
nextvalue NUMBER := submission_seq.currval;
BEGIN
DBMS_OUTPUT.put_line ('test');
DBMS_OUTPUT.put_line (nextvalue);
END;
答案 3 :(得分:0)
试试这个:
DECLARE
nextvalue integer;
BEGIN
nextvalue := submission_seq.currval;
dbms_output.put_line('test');
dbms_output.put_line(nextvalue);
SELECT nextvalue, id FROM TABLE_STATUS;
END;