2
我在oracle中有sp。我的SP如下所示如何在sqlplus中執行PL/SQL Oracle?
create or replace
PROCEDURE GETMONITORING
(
v_namabarang in varchar2 default null,
v_JenisLayanan in varchar2 default null,
cv_1 IN OUT SYS_REFCURSOR
)
AS
v_where VARCHAR2(200);
v_Select VARCHAR2(200);
v_from VARCHAR2(200);
v_final VARCHAR2(200);
v_result VARCHAR2(200);
BEGIN
v_Select:='select * ';
v_from :='from permohonan ';
v_where :='where sysdate=sysdate ';
IF nvl(length(v_namabarang),0) <> 0 then
v_Where := v_Where || ' AND namabarang like ''' || v_namabarang|| '%'' ';
end if;
IF nvl(length(v_jenislayanan),0) <> 0 then
v_Where := v_Where || ' AND jenislayanan like ''' || v_jenislayanan || '%'' ';
end if;
v_final :=v_select|| v_from|| v_where;
dbms_output.put_line(v_result);
END;
我試圖通過
SQL> var r refcursor;
SQL> exec getmonitoring('AC','1',:r);
SQL>print :r;
在sqlplus以Exec和結果是 「ORA-24338」:語句句柄不執行
那麼,如何Exec的我SP在sqlplus中?由於
我輸入了「OPEN cv_1 FOR v_final;」並刪除「 dbms_output.put_line(v_result);」 。但是,當我執行我的SP仍然錯誤ORA-0094。謝謝 –
按照我所示,請參閱最新的答案。使用'SHOW ERRORS'並編輯你的問題來顯示你實際做了什麼。 –
解決了。我錯誤地輸入了「OPEN cv_1 FOR v_final;」。謝謝 –