create or replace procedure para_cursor_exe as
cursor c_p_det(tar_val number) is select name, salary from fees where salary < tar_val;
nname varchar2(30);
ssalary number(5);
begin
<<block_exe>>
begin
Open c_p_det(&tar_val);
LOOP
FETCH c_p_det into nname, ssalary;
DBMS_OUTPUT.PUT_LINE('NAME : ' || NNAME || ' :::: SALARY : ' || SSALARY);
EXIT WHEN C_P_DET%NOTFOUND;
END LOOP;
CLOSE C_P_DET;
end;
execute immediate ' block_exe ' ;
dbms_output.put_line('done processing !!');
end;
/
SQL> @para_cursor_exe.sql;
Enter value for tar_val: 1000
old 9: Open c_p_det(&tar_val);
new 9: Open c_p_det(1000);
Procedure created.
を実行していないが、手順作成が、手順がコンパイルされる
SQL> call para_cursor_exe;
call para_cursor_exe
*
ERROR at line 1:
ORA-06576: not a valid function or procedure name
iがでカーソルに渡されることになっている異なる目標値に対して動的に処理手順をたい次のように呼び出しでエラーを返しますランタイム。どのように私はそれを呼び出すか、またはロジックが間違っていますか?
でコールを使用していないあなたが取得する提案を無視しないでくださいSQLタグを使用するときに特定のDBMSタグを追加します。構文と機能性が非常に異なるため、使用しているデータベースが分かっていることが必要です。 –
@Ken White ..私はoracleを使用しており、コマンドプロンプトから実行しています。 – codepoetly
はい、わかっています。私はあなたのためにOracleタグを追加しました。追加する必要があると表示された赤いボックスを無視するのではなく、質問するときにその指示を求められたら、自分で追加する必要があります。 –