Я звоню процедуру в сценарии и передачи переменного, как это:Как установить значение по умолчанию для параметра отсутствует заместительная
@@./procedudure.sql 'var1' 'var2' 'var3'
В процедуре я использую значение, как это:
DEFINE variable1 = '&1'
DEFINE variable2 = '&2'
DEFINE variable3 = '&3'
...
insert into TABLE (id, text) values ('&varibale1', '&variable2&variable3')
Я хочу, чтобы иметь возможность вызывать процедуру только с двумя параметрами вместо 3, так что последняя заменяется пустой строкой. Но когда я называю это так, я получаю эту подсказку:
Enter value for 3:
Я также пытался использовать параметры, как это, но с тем же результатом:
DEFINE variable2 = '&2' || '&3'
Я нашел это страницы для использования запроса для отсутствующей переменной, но не удалось найти нигде, как установить значение по умолчанию: https://blogs.oracle.com/opal/entry/sqlplus_101_substitution_varia#9_14
Как вы можете видеть из кода, я хочу, чтобы последние параметры были объединены. Это должно быть обходным путем для ограничения на 240 символов.
& 3 Является переменной. Это может быть не определено. – NeplatnyUdaj
Да, когда он не определен и вы вызываете proc из командной строки, он всегда будет предлагать ввести значение, a.k.a, определяющее переменную. Вот почему его определение в процедуре не приведет к приглашению и также будет действовать как значение по умолчанию. – Shankar
Но как я могу заменить значение по умолчанию фактическим '& 3', если он определен? – NeplatnyUdaj