create oracle package funched PLS-00103: 기호 "CREATE"를 발견했습니다.
Oracle sql developer를 사용하여 Oracle 패키지를 작성하고 있습니다. 다음 컴파일 오류가 발생했습니다.
오류(7,1): PLS-00103: 기호 "CREATE"를 발견했습니다.
create or replace
PACKAGE TestPackage AS
FUNCTION beforePopulate RETURN BOOLEAN;
FUNCTION afterPopulate RETURN BOOLEAN;
END TestPackage;
CREATE OR REPLACE PACKAGE BODY TestPackage AS
FUNCTION beforePopulate RETURN BOOLEAN AS
BEGIN
DELETE FROM TEST_1;
INSERT INTO TEST_1
SELECT * FROM TEST WHERE VALUE=300;
COMMIT;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
RETURN FALSE;
END;
FUNCTION afterPopulate RETURN BOOLEAN AS
BEGIN
UPDATE TEST SET RESULT="completed" WHERE VALUE=300;
COMMIT;
RETURN TRUE;
EXCEPTION
WHEN OTHERS RETURN FALSE;
END;
END;
END TestPackage;
추가할 경우/6행에서 오류는 다음과 같습니다.
오류(6,1): PLS-00103: 기호 "/"이(가) 발생했습니다.
나는 다음과 같은 빈 구현을 지쳤습니다.
create or replace
package package1 as
END PACKAGE1;
CREATE OR REPLACE
package body package1 as
end package1;
저도 같은 실수를 했어요.
BEGIN, END 등이 있으면 SQL이 아닌 PL/SQL에 있습니다.
PL/SQL 블록은 줄의 맨 처음에 슬래시 하나("앞으로")로 끝나야 합니다.이렇게 하면 Oracle이 PL/SQL 블록을 완료했으므로 해당 텍스트 블록을 컴파일할 수 있습니다.
SQL 쿼리 - 세미콜론으로 끝납니다.
update orders set status = 'COMPLETE' where order_id = 55255;
PL/SQL 블록 - 세미콜론으로 구분된 명령, 블록은 순방향 슬래시로 종료됩니다.
create or replace procedure mark_order_complete (completed_order_id in number)
is
begin
update orders set status = 'COMPLETE' where order_id = :completed_order_id;
end mark_order_complete;
/
Oracle SQL Developer를 사용하면 다음과 같은 이점을 얻을 수 있습니다.
create or replace PACKAGE TestPackage AS
FUNCTION beforePopulate
RETURN BOOLEAN;
FUNCTION afterPopulate
RETURN BOOLEAN;
END TestPackage;
/
CREATE OR REPLACE PACKAGE BODY TestPackage AS
FUNCTION beforePopulate
RETURN BOOLEAN AS
BEGIN
DELETE FROM TESTE;
INSERT INTO TESTE
SELECT 1,1,1 FROM DUAL;
COMMIT;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
RETURN FALSE;
END;
FUNCTION afterPopulate
RETURN BOOLEAN AS
BEGIN
UPDATE TESTE SET TESTE='OK' WHERE TESTE='';
COMMIT;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN RETURN FALSE;
END;
END TestPackage;
/
사용할 테이블과 열을 실제로 만들 때까지 실행할 수 없었습니다.
몇 시간의 좌절 끝에 저는 이 일을 해낼 수 있었습니다.저도 당신과 똑같은 문제가 있었습니다.
저의 해결책은 패키지 코드가 아닌 스크립트로 실행하는 것이었습니다.슬래시는 SQL 워크시트에서 올바르게 작동합니다.차액을 첨부합니다, 도움이 되길 바랍니다!

저도 같은 문제가 있었습니다.왼쪽 메인 메뉴를 사용하여 패키지를 만들고 패키지 선언과 본문을 동일한 .sql 파일 안에 넣습니다.모든 코드를 복사하여 새 워크시트에 붙여넣고 end package_name 뒤에 "/"(패키지 선언과 본문 뒤 모두)를 넣은 다음 워크시트를 스크립트로 실행하면 문제가 해결됩니다.
F5를 사용하여 패키지 및 패키지 본문을 별도로 실행합니다.
이 문제가 있었습니다(오류(6),: PLS-00103: sqdeveloper의 모든 db 패키지 코드(프로시저 헤더와 구현 모두)를 user/packages/MY_PACKage_NAME/MY_PACKage_BODY에 복사할 때 헤더를 user/packages/MY_PACKage_NAME에 복사하지 않고 "/" 기호를 만났습니다.사용자/패키지/MY_PACKAGE_NAME/MY_PACKAGE_BODY로 이동합니다.
언급URL : https://stackoverflow.com/questions/9231788/create-oracle-package-encountered-pls-00103-encountered-the-symbol-create
'programing' 카테고리의 다른 글
| ASP.NET MVC 글로벌 변수 (0) | 2023.06.28 |
|---|---|
| gradle build와 gradle bootJar의 차이점은 무엇입니까? (0) | 2023.06.28 |
| 제이드/퍼그로 인라인 자바스크립트를 렌더링하려면 어떻게 해야 합니까? (0) | 2023.06.23 |
| 재료 UI 자동 완성의 유형 스크립트 동일 문제 (0) | 2023.06.23 |
| Python 스타일 - 문자열이 있는 줄 연속? (0) | 2023.06.23 |