Каков правильный синтаксис для разбиения вызова процедуры PL/SQL на несколько строк?
Я вызываю процедуру PL/SQL следующим образом:
execute util.verify(src_schema => '&username',
stab => '&tab_name');
и я получаю эти ошибки:
SQL> execute util.verify(src_schema => '&username',
BEGIN util.verify(src_schema => 'u1',; END;
*
ERROR at line 1:
ORA-06550: line 1, column 57:
PLS-00103: Encountered the symbol ";" when expecting one of the following:
( - + case mod new not null <an identifier>
<a double-quoted delimited-identifier> <a bind variable>
continue avg count current exists max min prior sql stddev
sum variance execute forall merge time timestamp interval
date <a string literal with character set specification>
<a number> <a single-quoted SQL string> pipe
<an alternatively-quoted string literal with character set specification>
<an alternatively
SQL> stab => '&tab_name',
SP2-0734: unknown command beginning "stab ..." - rest of line ignored.
Похоже, я не могу просто прервать звонок между ,
, Как я могу написать этот вызов в несколько строк?
3 ответа
Решение
В SQLPlus вы ставите черту в конце строки, которая продолжается на следующей строке.
execute util.verify(src_schema => '&username', -
stab => '&tab_name');
Обновление: добавлена ссылка на документацию
Есть альтернативный способ, например, ниже:
begin
util.verify(src_schema => '&username',
stab => '&tab_name');
end;
/
execute xxxx;
(или же exec xxxx;
) это короткий путь для написания begin xxxx; end;
Это работает только для одного лайнера. Так что, если у вас есть несколько строк, вам нужно явно использовать begin
а также end
,