2017-09-15 12 views
0

필자는 오라클 APEX에서 PLSQL 프로 시저를 작성했지만 필자가 시도한 모든 방법으로 끝내는 방법을 모릅니다.PLSQL 프로 시저 끝내기

DECLARE 
PROCEDURE FzgZuordnen(Volt VARCHAR2) IS 
Variable Declarations 
* 
    BEGIN 
    * 
    END; 
FzgZuordnen END; 

또한

 * 
    END; 
END; 

을 시도하지만 내 절차를 종료 어떤 방법을 좋아하지 않는 것 같습니다. 절차 내내 모든 것을 끝 냈습니다.

도움 주셔서 감사합니다.

+0

선언을 제거하면 절차를 찾는데 불만을 제기하고 선언과 함께 절차를 대체합니다. –

+0

참고하시기 바랍니다. 모든 블록에 내부 문장이 필요합니다. 그래서 시작과 끝 사이에'NULL; '을 추가 할 수 있습니다 – ShoeLace

답변

0

필자가 알고있는 바로는 PL/SQL 프로 시저를 APEX 페이지에 직접 배치 할 수 없습니다. PL/SQL 실행에는 APEX 프로세스가 있습니다. 그런 다음 다른 페이지에 코드를 다시 사용하거나 각 페이지에 프로세스를 복사하거나 DB 절차를 사용해야하는 경우 APEX 프로세스를 사용


을 (데이터베이스에 직접 절차를 넣어 의미) : 만들기 페이지에서 새 프로세스를 선택하고 유형으로 "PL/SQL 코드"를 선택하십시오. 그런 다음 코드를 APEX 프로세스에 입력하십시오.

Variable Declarations 
* 
BEGIN 
* 
END; 

프로세스는 동일한 페이지에서만 사용할 수 있습니다. 다른 여러 페이지에서 코드를 사용하려면이 페이지로 복사해야합니다.


사용하여 DB-절차 : 당신은 오라클 데이터베이스에 직접 추가 할 필요가 DB를 절차를 사용합니다. 그러므로 당신이 선택한 도구로 데이터베이스에 연결하십시오. 위에서 코드를 실행하십시오. APEX에서 프로 시저를 호출하려면 다음과 같이하십시오. APEX에 포함 -

begin 
    PKG.FzgZuordnen(:APEX_PAGEITEM); 
end; 
2

당신은 어디서든 PL/SQL 블록에서 지역 절차를 선언 할 수 있습니다. 구문은 다음과 같은 것이다 : 예를 들어

DECLARE 
    PROCEDURE FzgZuordnen(Volt VARCHAR2) IS 
    -- Variable Declarations 
    BEGIN 
    -- Procedure code 
    END FzgZuordnen; 
BEGIN 
    -- Block PL/SQL that calls the procedure 
END; 

:

DECLARE 
    PROCEDURE raise_error (error_text VARCHAR2) IS 
    BEGIN 
    raise_application_error (-20001, error_text); 
    END FzgZuordnen; 
BEGIN 
    if :p1_value < 0 then 
    raise_error ('Value cannot be negative'); 
    elsif :p1_value > 10 then 
    raise_error ('Value cannot exceed 10'); 
    end if; 
END; 

절차 로컬 선언 그것만이 선언 된 PL/SQL 블록에서 이용 될 수 있기 때문이다. 많은 애플리케이션이나 페이지에 호출 할 수있는 프로 시저가 필요하다면 데이터베이스 (패키지가 바람직 함)에 정의되어야합니다.

관련 문제