source

Oracle 스토어드 프로시저를 실행하는 방법

manycodes 2023. 4. 1. 09:38
반응형

Oracle 스토어드 프로시저를 실행하는 방법

oracle 10g express 에디션을 사용하고 있습니다.DB 개발자에게 적합한 UI를 제공합니다.그러나 저장 프로시저를 실행하는 데 몇 가지 문제가 있습니다.

순서:

create or replace procedure temp_proc is
begin
  DBMS_OUTPUT.PUT_LINE('Test');
end

정상적으로 작성되었습니다.하지만 실행 시:

execute temp_proc;

ORA-00900: invalid SQL 문이 표시됩니다.

여기서 도움이 필요

Executeis sql*plus 구문 ..먼저 전화를 걸어보세요.다음과 같이 끝납니다.

begin 
    temp_proc;
end;

(Jeffrey는 이것이 APEX에서는 동작하지 않는다고 말했지만, SQLDeveloper에서는 동작시키려 하고 있습니다.'실행' 메뉴를 사용해 보십시오.)

Oracle 10g Express Edition에는 Oracle Application Express(Apex)가 내장되어 있습니다.SQL*Plus 구문을 지원하지 않는 SQL 명령 창에서 실행 중입니다.

그건 중요하지 않아요. 왜냐하면 BEGIN은...END 구문은 Apex에서 작동합니다.

is와 as는 모두 유효한 구문입니다.디폴트로는 출력은 디세블로 되어 있습니다.출력도 유효하게 하는 프로시저를 시험해 보겠습니다.

create or replace procedure temp_proc is
begin
  DBMS_OUTPUT.ENABLE(1000000);
  DBMS_OUTPUT.PUT_LINE('Test');
end;

PLSQL 블록에서 호출...

begin
  temp_proc;
end;

...SQL은 비절차적이기 때문입니다.

oracle 12를 사용하고 있는데, 프로시저를 기동할 필요가 있는 경우는, call 키워드를 사용해 주세요.고객님의 경우 다음과 같습니다.

begin
  call temp_proc;
end;

다음과 같은 구문을 수정해 보셨습니까?

create or replace procedure temp_proc AS
begin
  DBMS_OUTPUT.PUT_LINE('Test');
end;

Oracle SQL Developer(GUI)에서는 12c를 사용하여 DMBS Output 창(View = > Dbms Output을 클릭한 다음 "+" 기호를 클릭하고 연결을 선택)을 활성화하는 것도 잊지 마십시오. 기본적으로 이 창은 활성화되어 있지 않습니다.

[ DBMS Output ]창 DBMS 출력창 활성화

다음 구문이 이 창에 출력됩니다.

begin
  temp_proc
end;

명령 창에서 간단히 다음을 수행할 수 있습니다.

Connected to Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 
Connected as XXX@YYY


SQL> call temp_proc();

또는 다음 중 하나를 선택합니다.

SQL> execute temp_proc();

언급URL : https://stackoverflow.com/questions/1854427/how-to-execute-an-oracle-stored-procedure

반응형