0

ループの最後で結果の値を選択したいと考えています。元の問題からコードを単純化しています。ステータスは 1 または 0 の可能性があります。このループは、SELECT UNIQUE クエリの結果内に「1」があるかどうかを確認するためのものです。「はい」の場合、関数の結果は常に 1 (または TRUE) でなければなりません。

DECLARE 
    CURSOR status_cursor is(SELECT UNIQUE status
                            FROM    src_table st, bucket_table bt, many_table mt
                            WHERE   st.id = bt.st_id
                            AND    bt.mt_id = mt.id);
    result BOOLEAN := FALSE;
BEGIN
    FOR vals IN status_cursor
    LOOP
        IF vals.status = 1 THEN result := TRUE;
        END IF;
    END LOOP;
    SELECT result FROM DUAL; <-- this line does not work see error msg. 
END;

次のエラー メッセージが表示されます。

ORA-06550: line 20, column 9:
PLS-00382: expression is of wrong type
ORA-06550: line 20, column 2:
PLS-00428: an INTO clause is expected in this SELECT statement
4

2 に答える 2

0

使用できます:

dbms_output.put_line(CASE result WHEN TRUE THEN 'TRUE' WHEN FALSE THEN 'FALSE' END);
于 2013-06-26T19:26:50.797 に答える