Oracle
在 PL/SQL 中使用游標變數時遇到錯誤“無效的 SQL 語句”
大家好,希望你們一切都好。我是 PL/SQL 的新手,我正在嘗試學習 ‘cursor variable’ 。我為自己做了一個例子,一切看起來都是正確的,我不知道為什麼它不起作用。我的第一個程序是
create or replace procedure p_get_student_detail(s_id number, s_cur out sys_refcursor) AS Begin open s_cur for select student_name, age from student where student_id = s_id; end;
我使用第一個過程的輸出的第二個過程是:
Create or replace procedure s_print_data(s_id number) as type ref_cur is ref cursor; s_refcur ref_cur; s_student_name student.student_name%type; s_student_age student.age%type; begin p_get_student_detail(s_id, s_refcur); loop fetch s_refcur into s_student_name, s_student_age; exit when s_refcur%notfound; dbms_output.put_line(s_student_name || s_student_age); end loop; end;
當我嘗試執行該過程時,
exec s_print_data (1)
我看到了這個錯誤:ORA - 00900:invalid SQL statement
我想知道你是否可以幫助我。謝謝
好的,我發現問題出在呼叫程序的語法不正確我必須像這樣呼叫程序:
begin s_print_data(1); end;
一切正常