O SQL * Plus não executa scripts SQL que o SQL Developer faz

Estou enfrentando um problema muito chato. Eu escrevi (no Notepad ++) alguns scripts SQL. Agora, quando eu tento executá-los pelo SQL * Plus (através da linha de comando, no Windows 7), estou recebendo erros comoORA-00933: SQL command not properly ended.

Em seguida, copio e colo o script na janela da planilha do SQL Developer, clico no botão Executar e o script é executado sem nenhum problema / erro.

Depois de uma longa investigação, cheguei a pensar que o SQL * Plus tem um problema com alguns espaços em branco (incluindo caracteres de nova linha e guias) que ele não entende.

Como suponho que o SQL Developer saiba como se livrar dos espaços em branco estranhos, tentei fazer isso: cole o script na janela de planilha do SQL Developer, copie-o e cole-o novamente no script SQL. Isso resolveu o problema de alguns arquivos, mas não de todos os arquivos. Alguns arquivos continuam mostrando erros em locais sem nenhum motivo aparente.

Você já teve esse problema? O que devo fazer para poder executar esses scripts pelo SQL * Plus através da linha de comando?

ATUALIZAR:

Um exemplo de um script que não funcionou com o SQL * Plus, mas funcionou com o 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>

O erro que recebo:

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

Como você vê o erro está ligado(SELECT (LEVEL-1)+0 IS_ACTIVE FROM DUAL CONNECT BY LEVEL<=2) B (Por algum motivo, em todos os arquivos que recebem este erro, o erro aparece na última linha antes do ponto e vírgula final.)

questionAnswers(1)

yourAnswerToTheQuestion