
No.1ベストアンサー
- 回答日時:
カーソルにINのパラメータが設定できるので、INで受け取った値をカーソル内のWhere句に指定すれば検索可能です。
昔、こんな感じでやりました。
以下のサンプルはscottユーザで流してみてください。
set serveroutput on size 1000000
DECLARE
CURSOR emp_cur
IS
SELECT
empno,
deptno
FROM emp
;
emp_rec emp_cur%ROWTYPE;
CURSOR dept_cur
(
in_deptno IN NUMBER
)
IS
SELECT
deptno,
dname
FROM dept
WHERE deptno = in_deptno
;
dept_rec dept_cur%ROWTYPE;
BEGIN
OPEN emp_cur;
LOOP
FETCH emp_cur INTO emp_rec;
EXIT WHEN emp_cur%NOTFOUND;
OPEN dept_cur
(
emp_rec.deptno
);
FETCH dept_cur INTO dept_rec;
IF dept_cur%NOTFOUND
THEN
DBMS_OUTPUT.PUT_LINE('dept not found : ' || emp_rec.deptno);
ELSE
DBMS_OUTPUT.PUT_LINE(emp_rec.empno);
DBMS_OUTPUT.PUT_LINE(dept_rec.dname);
END IF;
CLOSE dept_cur;
END LOOP;
CLOSE emp_cur;
EXCEPTION
WHEN OTHERS THEN
DECLARE
ERROR_CODE NUMBER := SQLCODE;
ERROR_MSG VARCHAR2(300) := SQLERRM;
BEGIN
DBMS_OUTPUT.PUT_LINE('*** ORA-ERROR IN THE EXCEPTION ***');
DBMS_OUTPUT.PUT_LINE('ERROR CODE : ' || TO_CHAR(ERROR_CODE));
DBMS_OUTPUT.PUT_LINE('ERROR MSG : ' || ERROR_MSG);
END;
END;
/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PL/SQLカーソルの2重FORループ...
-
PL/SQLでのSQL文法
-
カーソル定義での条件分岐
-
ORA-00904:無効な識別子の回避...
-
PL/SQLにてカーソル名を変数に
-
Statement ignored というエラー
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
Accessで年月日のデータ...
-
sqlplusでヘッダーが付かない
-
SQL*Loaderでのsysdate使用
-
DATE型の省略値について
-
キャッシュを使わずにSELECTを...
-
日付型カラムへのデータINSERT
-
ACCESS、時間ごとの集計の仕方は?
-
ストアド実行時のエラー「参照...
-
callで順に実行されるプロシー...
-
sqlplusのspoolで空白行出現
-
OutlookVBAで作成したマクロに...
-
ROW_NUMBER()を使用したデータ取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PL/SQLカーソルの2重FORループ...
-
PL/SQLでのSQL文法
-
カーソル定義での条件分岐
-
ORA-00904:無効な識別子の回避...
-
自動連番でカラムを更新したい
-
Texの枠囲み調節
-
カーソルフェッチにて、最終レ...
-
カーソルで集合関数を使った場...
-
PL/SQLのOPEN cursor_name FOR...
-
PL/SQLでの参照
-
【PL/SQL】LOOPした動的SQLにて...
-
T-SQLのカーソルで
-
PL/SQLにて、マスタから取得し...
-
PL/SQL カーソルのFROM句にカー...
-
カーソルループ内部でログを出力
-
【PL/SQL】CURSOR ・・・ IS SE...
-
PL/SQLのカーソルについて
-
T-SQLで
-
[Oracle9i]PL/SQLでFETCHしても...
-
PL/SQLにてカーソル名を変数に
おすすめ情報