programing

PLS-00103: "CREATE" 기호가 발견되었습니다.

stoneblock 2023. 3. 25. 09:13

PLS-00103: "CREATE" 기호가 발견되었습니다.

이 패키지는 오류가 발생하는데 어떤 문제가 있나요?

CREATE OR REPLACE PACKAGE PKG_SHOW_CUST_DETAILS 
AS
    PROCEDURE SHOW_CUST_DETAILS( myArg VARCHAR2);
END PKG_SHOW_CUST_DETAILS;

CREATE OR REPLACE PACKAGE BODY PKG_SHOW_CUST_DETAILS 
AS
    PROCEDURE SHOW_CUST_DETAILS(myArg VARCHAR2)
    IS
    BEGIN
        DBMS_OUTPUT.PUT_LINE(myArg);        
    END SHOW_CUST_DETAILS;

END PKG_SHOW_CUST_DETAILS;
/

위의 스크립트를 컴파일하면 다음 오류가 발생합니다.

SQL > 오류 표시PKG_SHOW_CUST_DETIES 패키지 오류:
회선/COL 오류-------- -----------------------------------------------------------------6/1 PLS-00103: "CREATE" 기호가 발견되었습니다.

패키지는 매우 간단해서 컴파일을 할 수 없습니다.이 에러 메세지에 대해서 이전의 답을 검색했지만, 어느 쪽도 문제를 해결하지 못했습니다.이 에러는 2개의 패키지에서 계속 발생하며, 어떻게 해도 이 에러 메세지가 표시되지 않습니다.위와 같이 모든 것을 최소한으로 제거하려고 했지만, 에러 메세지가 사라지지 않는 것 같습니다.참고로 Oracle 11G 데이터베이스에 로그인한 후 명령줄 SQL 플러스 세션에서 이 작업을 수행합니다.[YES] - [SET SERVEROUT ON] - 이 명령어와 무관한 오류 메시지가 실행됩니다.

제가 무엇을 빠뜨리고 있나요?

5번 줄에는/실종된.

사이의 차이에 대한 좋은 답이 있다.;그리고./ 여기 있습니다.

디폴트로는CREATE스크립트를 통한 차단, 사용 필요/PL/SQL 블록에는 다음 인스턴스가 많이 포함될 수 있으므로 블록이 언제 종료되는지 SQLPlus에 알립니다.;.

나로서는 새로운 줄을 서야 했다.

예를들면

create type emp_t;/

작동하지 않았다

그렇지만

create type emp_t;

/

일했다.

저 같은 경우에는EXECUTE IMMEDIATE ('CREATE TABLE ...')는 다음과 같이 동작합니다.

DECLARE 
   myVar INT;
BEGIN
SELECT 2 INTO myVar FROM dual;
IF myVar > 1 THEN
    EXECUTE IMMEDIATE('Create Global Temporary Table TestTemp ( id VARCHAR2(2) ) ON COMMIT PRESERVE ROWS');
END IF;
END;

PL/SQL 내에서 테이블 작성에 대한 참조

패키지 선언과 본문을 개별적으로 실행합니다.

언급URL : https://stackoverflow.com/questions/20334067/pls-00103-encountered-the-symbol-create