SQL * Plus nie wykonuje skryptów SQL, które wykonuje programista SQL

Stoję przed bardzo denerwującym problemem. Napisałem (w Notepad ++) niektóre skrypty SQL. Teraz, gdy próbuję je wykonać za pomocą SQL * Plus (za pomocą wiersza poleceń, w systemie Windows 7), otrzymuję błędy takie jakORA-00933: SQL command not properly ended.

Następnie kopiuję skrypt i wklejam go do okna arkusza SQL Developer, klikam przycisk Uruchom, a skrypt wykonuje się bez żadnych problemów / błędów.

Po długim dochodzeniu doszedłem do wniosku, że SQL * Plus ma problem z niektórymi białymi znakami (w tym znakami nowej linii i kartami), których nie rozumie.

Ponieważ zakładam, że SQL Developer wie, jak pozbyć się dziwnych białych znaków, spróbowałem tego: wklej skrypt do okna arkusza SQL Developer, a następnie skopiuj go i wklej z powrotem do skryptu SQL. To rozwiązało problem dla niektórych plików, ale nie dla wszystkich plików. Niektóre pliki pokazują błędy w miejscach bez wyraźnego powodu.

Czy kiedykolwiek miałeś ten problem? Co powinienem zrobić, aby móc uruchomić te skrypty przez SQL * Plus za pomocą wiersza poleceń?

AKTUALIZACJA:

Przykład skryptu, który nie działał z SQL * Plus, ale pracował z SQL Developer:

<code>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

;
</code>

Błąd, który otrzymuję:

<code>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
</code>

Jak widzisz, błąd jest włączony(SELECT (LEVEL-1)+0 IS_ACTIVE FROM DUAL CONNECT BY LEVEL<=2) B (z jakiegoś powodu we wszystkich plikach, w których występuje ten błąd, błąd pojawia się w ostatnim wierszu przed końcowym średnikiem.)

questionAnswers(1)

yourAnswerToTheQuestion