PL/SQLでカーソルが空かどうかを判定する方法は何ですか?
PL/SQLで、カーソルの属性%ISOPENや%NOTFOUNDを使用して、カーソルが空かどうかを判断することができます。
ISOPEN属性は、カーソルが開いているかどうかを判断するために使用され、カーソルが開いていればTRUEを返し、閉じていればFALSEを返します。
NOTFOUND属性は、カーソルが最後の行のデータを読み込んでいるかどうかを判断するために使用されます。最後の行のデータを読み込んでいる場合はTRUEを返します。読み込んでいない場合はFALSEを返します。
以下是一个示例代码,显示了如何检查游标是否为空:
DECLARE
CURSOR cur_emp IS
SELECT employee_id, first_name, last_name
FROM employees;
emp_rec cur_emp%ROWTYPE;
is_empty BOOLEAN;
BEGIN
OPEN cur_emp;
DECLARE
カーソル cur_emp IS
従業員の従業員ID、名前、姓を選択する
FROM employees;
emp_rec cur_emp%ROWTYPE;
is_empty BOOLEAN;
BEGIN
cur_empを開く;
cur_empをemp_recに取り込みます。
IF cur_emp%NOTFOUND ならば、is_emptyをTRUEに設定します。
それ以外の場合、is_emptyをFALSEに設定します。
If is_empty THEN
DBMS_OUTPUT.PUT_LINE(‘游标为空’);
ELSE
DBMS_OUTPUT.PUT_LINE(‘游标不为空’);
END IF;
もしis_emptyならば、
DBMS_OUTPUT.PUT_LINE(‘游标为空’);
そうでないならば、
DBMS_OUTPUT.PUT_LINE(‘游标不为空’);
END IF;
現在の従業員を閉じる;
終了;
上記のサンプルコードでは、最初にカーソルcur_empを定義し、次にカーソルをオープンしてFETCHステートメントを1回実行してデータをemp_rec変数に読み込みます。次に、%NOTFOUND属性を使用してカーソルが最後の行まで読み込んだかどうかを判断し、読み込んだ場合はis_emptyをTRUEに設定し、そうでない場合はFALSEに設定します。最後にis_emptyの値に応じて結果を出力し、最後にカーソルを閉じます。