0

良い一日、

クエリで pl/sql 変数を使用しようとしています (私は sql サーバー担当者です)。これが私のコードです。

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入力するために使用したため、これを取得する理由がわかりません。

誰でも私を助けることができますか?

ティア、

コソン

4

4 に答える 4

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;
于 2012-10-18T22:32:28.363 に答える
0

シークエンスが始まった?

これを変える

SELECT submission_seq.currval INTO nextvalue FROM DUAL;

このため

SELECT submission_seq.nextval INTO nextvalue FROM DUAL;
于 2012-10-18T22:36:21.203 に答える
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;
于 2013-01-25T22:54:22.353 に答える
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;
于 2013-01-26T10:50:08.097 に答える