我有一个没有参数的存储过程,这些参数是从UNIX调用的
脚本由db2 call
和SP工作正常,脚本运行良好。
新要求是将文件名传递给存储过程并执行一些操作
业务逻辑 - 我无法将文件名从UNIX传递给SP。我使用IN
的{{1}}参数。
SP编译正常,并且在正确的架构中可用 - 我调用了 使用多种方式,但没有一种方法可以正常工作。
请帮我调试一下。
DB2存储过程:
Varchar(50)
我尝试过的不同方法从UNIX脚本调用DB2存储过程
CREATE PROCEDURE ABC.sp_Update(IN FILE_NAME VARCHAR(50))
db2 call "ABC.sp_Update("filename.txt")"
db2 call "ABC.sp_Update(("filename.txt"))"
FILE_NAME="filename.txt"
db2 call "ABC.sp_Update($FILE_NAME)"
我得到的错误:
FILE_NAME="filename.txt"
db2 call "ABC.sp_Update($(FILE_NAME))"
当我检查命令的执行状态时,我得到一个返回代码4
db2 call ABC.sp_Update(filename.txt)
SQL0206N "FILENAME.TXT" is not valid in the context where it
is used. SQLSTATE=42703
在代码更改之前,这很好用:
+ RC=4
当我用Google搜索错误db2 call "ABC.sp_Update()"
的说明时,它是检测到未定义的列,属性或参数名称。
答案 0 :(得分:0)
抱歉伙计 - 应该使用一个报价 - 它有效 - 谢谢和抱歉