SQL*Plus는 SQL Developer가 실행하는 SQL 스크립트를 실행하지 않습니다.
저는 매우 성가신 문제에 직면해 있습니다.저는 (메모장++로) SQL 스크립트를 작성했습니다.이제 SQL*Plus(윈도우 7에서 명령줄을 통해)로 실행하려고 하면 다음과 같은 오류가 발생합니다.ORA-00933: SQL command not properly ended
.
그런 다음 SQL Developer 워크시트 창에 스크립트를 복사하여 붙여넣고 Run 버튼을 누르면 스크립트가 문제 없이 실행됩니다.
오랜 조사 끝에 SQL*Plus에서 이해할 수 없는 일부 공백(새 줄 문자 및 탭 포함)에 문제가 있다는 생각이 들었습니다.
SQL Developer가 이상한 공백을 제거하는 방법을 알고 있다고 생각하기 때문에 SQL Developer 워크시트 창에 스크립트를 붙여넣은 다음 거기서 복사하여 SQL 스크립트에 다시 붙여넣습니다.그것은 일부 파일의 문제를 해결했지만 모든 파일은 해결하지 못했습니다.일부 파일은 뚜렷한 이유 없이 계속해서 장소에 오류를 표시합니다.
이런 문제가 있었던 적이 있습니까?명령줄을 통해 SQL*Plus에서 이러한 스크립트를 실행하려면 어떻게 해야 합니까?
업데이트:
SQL*Plus에서는 작동하지 않지만 SQL Developer에서는 작동하는 스크립트의 예:
SET ECHO ON;
INSERT INTO MYDB.BOOK_TYPE (
BOOK_TYPE_ID, UNIQUE_NAME, DESCRIPTION, VERSION, IS_ACTIVE, DATE_CREATED, DATE_MODIFIED
)
SELECT MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, 'Book-Type-' || MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, 'Description-' || MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, A.VERSION, B.IS_ACTIVE, SYSDATE, SYSDATE FROM
(SELECT (LEVEL-1)+0 VERSION FROM DUAL CONNECT BY LEVEL<=10) A,
(SELECT (LEVEL-1)+0 IS_ACTIVE FROM DUAL CONNECT BY LEVEL<=2) B
;
표시되는 오류:
SQL> SQL> SET ECHO ON;
SQL>
SQL> INSERT INTO MYDB.BOOK_TYPE (
2 BOOK_TYPE_ID, UNIQUE_NAME, DESCRIPTION, VERSION, IS_ACTIVE, DATE_CREATED, DATE_MODIFIED
3 )
4 SELECT MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, 'Book-Type-' || MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, 'Description-' || MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, A.VERSION, B.IS_ACTIVE, SYSDATE, SYSDATE FROM
5
SQL> (SELECT (LEVEL-1)+0 VERSION FROM DUAL CONNECT BY LEVEL<=10) A,
2 (SELECT (LEVEL-1)+0 IS_ACTIVE FROM DUAL CONNECT BY LEVEL<=2) B
3
SQL> ;
1 (SELECT (LEVEL-1)+0 VERSION FROM DUAL CONNECT BY LEVEL<=10) A,
2* (SELECT (LEVEL-1)+0 IS_ACTIVE FROM DUAL CONNECT BY LEVEL<=2) B
보시다시피 오류가 발생했습니다.(SELECT (LEVEL-1)+0 IS_ACTIVE FROM DUAL CONNECT BY LEVEL<=2) B
(어떤 이유에서인지 이 오류가 발생하는 모든 파일에서 오류는 세미콜론이 끝나기 전 마지막 줄에 나타납니다.)
빈 줄을 제거합니다.
sqlplus에서 빈 줄은 이전 문을 중지하고 새 문을 시작하는 것을 의미합니다.
또는 빈 줄을 설정할 수 있습니다.
set sqlbl on
또는 sqdeveloper의 "Ctrl F7"을 사용하여 스크립트를 포맷할 수 있습니다.비슷한 문제가 있어서 빈칸 제거 등을 시도했지만 분명히 뭔가를 놓치고 있었습니다.Ctrl F7 함수를 찾았고 스크립트가 작동했습니다.
언급URL : https://stackoverflow.com/questions/10406810/sqlplus-does-not-execute-sql-scripts-that-sql-developer-does
'programing' 카테고리의 다른 글
도커 컨테이너는 몇 개의 CPU를 사용합니까? (0) | 2023.08.07 |
---|---|
현재 실행 중인 PowerShell 스크립트의 경로 (0) | 2023.08.07 |
.env 값을 즉시 프로그래밍 방식으로 라벨로 설정하는 방법 (0) | 2023.08.07 |
Android 롤리팝 카드 보기에 미치는 파급 효과 (0) | 2023.08.07 |
git clone --mirror를 업데이트하는 방법은 무엇입니까? (0) | 2023.08.07 |