다람쥐 SQL에서 Oracle 저장 프로시저 호출
Oracle 데이터베이스에 대한 저장 프로시저를 만들 수 있었지만 이제는 실행 방법을 찾을 수 없습니다.저는 Squirrel SQL을 사용하고 있고 이것이 프로시저를 만드는 데 효과가 있었습니다.
CREATE OR REPLACE PROCEDURE MyProc(label IN varchar2, results OUT sys_refcursor) AS
BEGIN
OPEN results FOR
SELECT Label, Count, Timestamp
FROM table1
LEFT JOIN table2 ON table1.Name=table2.Name
WHERE table1.Label=label
ORDER BY Timestamp;
END;
/
저는 결과 세트를 받아서 보여줄 수 있기를 원합니다.사용해 보았습니다.call MyProc('param')
, 그러나 이것은 작동하지 않습니다(인수 오류 wrong 수).저는 이 사이트 등에서 많이 검색해 보았지만 유용한 것이 없습니다.도와주세요!
다음은 저장 프로시저를 실행하는 작업입니다.
begin
procedurename;
end;
/
네, 마지막에 슬래시가 필요합니다!
그begin...end;
PL/SQL 블록(오라클별)을 선언합니다.슬래시는 블록을 실행하는 명령입니다.
/(slash)
SQL 버퍼에 저장된 가장 최근에 실행된 SQL 명령 또는 PL/SQL 블록을 실행합니다.
[...]
Oracle Database 온라인 설명서, 10g Release 2 (10.2) / SQL*Plus® 사용 설명서 및 참조
다람쥐 SQL에서 작동하는 유일한 구문은 PL/SQL 블록입니다.
declare
v_label varchar2:='SOMELABEL';
TYPE ref_cursor IS REF CURSOR;
v_cur_results ref_cursor;
begin
MyProc (v_label, v_cur_results)
end;
/
이 기사가 설명하는 것처럼 "실행" 대신 "콜"을 사용하면 문제가 해결됩니다.
var v_result sys_refcursor
exec MyProc ('test label',:v_result)
오랫동안 이 문제로 어려움을 겪었지만 이렇게 잘 해결할 수 있었습니다.
{call DBMS_SESSION.SET_CONTEXT ( namespace => 'clientcontext', attribute => 'foo', value => 'bar' )}
언급URL : https://stackoverflow.com/questions/5476269/calling-an-oracle-stored-procedure-in-squirrel-sql
'programing' 카테고리의 다른 글
Wordpress Editor는 렌더링할 때 상위 항목에 표시되지 않는 경우 작동하지 않습니다. (0) | 2023.10.06 |
---|---|
모든 유효성 검사 오류 제거를 포함하여 양식을 재설정하려면 어떻게 해야 합니까? (0) | 2023.10.06 |
IIS에서 powershell 스크립트를 사용하여 응용 프로그램 풀을 시작하고 중지하는 방법 (0) | 2023.10.06 |
MySQL get mindate 및 maxdate를 하나의 쿼리로 얻을 수 있습니다. (0) | 2023.10.06 |
Sql Server Unique Key도 Index입니까? (0) | 2023.10.06 |