Ошибка при вызове хранимой процедуры из UNIX - PullRequest
0 голосов
/ 28 июня 2011

У меня была хранимая процедура без аргументов, которая была вызвана из сценария UNIX db2 call, и SP работал нормально, а сценарий также работал нормально.

Новое требование заключается в передаче имени файлак хранимой процедуре и сделать некоторую бизнес-логику - я не могу передать имя файла из UNIX в SP.Я использую IN параметр Varchar(50).

SP скомпилирован нормально и доступен в правильной схеме - я вызвал несколько способов, и ни один из них не работает нормально.

Пожалуйста, помогите мне отладить это.

Хранимая процедура DB2:

CREATE PROCEDURE ABC.sp_Update(IN FILE_NAME VARCHAR(50))

Различные методы, которые я пробовал Вызов хранимого процесса DB2 из сценария UNIX

  1. db2 call "ABC.sp_Update("filename.txt")"

  2. db2 call "ABC.sp_Update(("filename.txt"))"

  3. FILE_NAME="filename.txt"
    db2 call "ABC.sp_Update($FILE_NAME)"
    
  4. FILE_NAME="filename.txt"
    db2 call "ABC.sp_Update($(FILE_NAME))"
    

ОшибкаЯ получаю:

db2 call ABC.sp_Update(filename.txt)
SQL0206N  "FILENAME.TXT" is not valid in the context where it
is used.  SQLSTATE=42703

Когда я проверяю статус выполнения команды, я получаю код возврата 4

+ RC=4

До изменения кода это работало нормально:

db2 call "ABC.sp_Update()"

Когда я погуглил описание ошибки 42703, это Обнаружен неопределенный столбец, атрибут или имя параметра .

1 Ответ

0 голосов
/ 28 июня 2011

Извините, ребята - Нужно было использовать одну цитату - Работало - Спасибо и извините

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...