Есть ли в представлении SQL пустая строка или какая-либо строка содержит более 2499 символов? Любой из этих факторов может привести к непредсказуемому поведению SQL * Plus, но на самом деле не к сбою.
Если есть пустая строка, Oracle проигнорирует все до нее и попытается запустить все после нее. (Это относится только к SQL, а не к PL / SQL.) Например, если у вас есть пустая строка сразу после строки create view
, запрос будет выполнен:
SQL> create or replace view newline_in_the_middle as
2
SQL> select * from dual;
D
-
X
Строка с> 2499 символами будет игнорироваться, но Oracle все равно попытается обработать оператор без него. Это может вызвать проблемы, но все равно может привести к правильному утверждению:
SQL> create or replace view long_line as
2 select '...[enter 2500 characters]...' asdf from dual union all
SP2-0027: Input is too long (> 2499 characters) - line ignored
2 select '1' asdf from dual;
View created.
Возможно, вам придется очень внимательно проверить вывод скрипта, чтобы найти эти проблемы.