我有一个对存储过程(db2)的调用,如果一个字符串中有一个单引号,它就会出现错误,并且#34; Invalid Token"。我知道解决方案是将单引号替换为两个单引号。我正在尝试使用"替换"并且得到错误"令牌S无效"。这是"取代"应该用吗?
CALL my_store_proc ('xyz', 'US', 'MAIL', replace('Joe's',''','''''), 'zipcode' )
谢谢!
答案 0 :(得分:0)
您需要在文字中引用引号,即:
CALL my_store_proc ('xyz', 'US', 'MAIL', replace('Joe''s',''',''''') , 'zipcode' )
仅用于语法,但根据您的意图,您可能需要更多引号:
CALL my_store_proc ('xyz', 'US', 'MAIL', replace('Joe''s','''',''''''), 'zipcode' )
答案 1 :(得分:0)
你说这个程序错了......
您没有提到您调用存储过程的位置/方式。但ODBC,JDBC等都有一个方法,允许您从存储过程调用的变量中设置参数值。
使用其中一种方法而不是简单地构建字符串是首选的调用方法。