2009-11-05 8 views
1

저장 프로 시저 스크립트를 실행하고 싶지만 여러 저장 프로 시저를 한 번에 실행하면 모든 프로 시저가 컴파일되지만 별도로 모든 프로 시저가 작성되지는 않습니다. 하나의 절차로 누구든지이 문제를 해결하기 위해 나를 도울 수 있습니까?오라클 저장 프로 시저

+5

난 당신이 좀 더 구체적으로 어쩌면 우리에게 당신이 뭘 하려는지에 대한 몇 가지 코드 샘플을 보여줄 필요가 있다고 생각 새로운 문으로 그것을 받아 들일 것입니다. 또한 솔루션을 우편으로 보내지 않지만 질문에 게시 된 답변을 구독 할 수있는 버튼이 있습니다. –

답변

3

다음과 같아야합니다 여러 절차를 생성하는 스크립트 :

create or replace procedure proc1 (param1 varchar2) 
is 
begin 
    null; 
end; 
/

create or replace procedure proc2 (param1 varchar2) 
is 
begin 
    null; 
end; 
/

create or replace procedure proc3 
is 
begin 
    null; 
end; 
/

당신은 어떤 모양입니까?

모범 사례 어쨌든 패키지에 관련된 저장 프로 시저를 넣어 항상 : 나는 당신이 각 절차 후 /를 놓치고 것으로 기대

create or replace package package1 is 

    procedure proc1 (param1 varchar2) 
    is 
    begin 
     null; 
    end; 

    procedure proc2 (param1 varchar2) 
    is 
    begin 
     null; 
    end; 

    procedure proc3 
    is 
    begin 
     null; 
    end; 

end package1; 
/
2

.

0

데이비드와 토니가 모두 중요하다고 생각합니다. 확인

우선은 슬래시 / 그래서 오라클은 각 절차의 끝을 인식 할 수와 모든 절차를 종료 한 것입니다.

저장 프로 시저 지침/명령문은 으로 구분되므로, 다른 "터미네이터"

두 번째 것입니다을 사용할 필요가 이유를 분류 할 수있는 몇 가지 절차를 가지고있는 경우 기억, 당신은 패키지를 작성해야, 성명이 절차를 완료하면 오라클은 알 수없고, 그건 패키지 정의 및 패키지 본문을 만듭니다.

CREATE OR REPLACE PACKAGE PCKG1 AS 
    PROCEDURE PROC1; 
    PROCEDURE PROC2 (PARAM1 VARCHAR2); 
END PCKG1; 
/


CREATE OR REPLACE PACKAGE BODY PCKG1 AS 

    PROCEDURE PROC1 IS 
    BEGIN 
     -- YOUR CODE HERE -- 
    END PROC1; 

    PROCEDURE PROC2 (PARAM1 VARCHAR2) IS 
    BEGIN 
     -- YOUR CODE HERE -- 
    END PROC2; 

END PCKG1; 
/

이렇게하면 수십 개를 개발할 때 쉽게 절차/기능을 찾을 수 있습니다.

모두에게 좋은 답변입니다.

0

찾는 슬래시 별도 라인에서 두 절차 사이

/ 

.

오라클은 다음