sql中的Update命令出现问题
我在表格中有以下详细信息sql中的Update命令出现问题,sql,oracle,Sql,Oracle,我在表格中有以下详细信息 GEMS@TEST1>select BUILTIN_ARGUMENTS from FND_FORM_CUSTOM_ACTIONS WHERE (RULE_ID = 2243); BUILTIN_ARGUMENTS -------------------------------------------------------------------------------- ='http://prod.client.com:3001/ords/f?p=1:2:::
GEMS@TEST1>select BUILTIN_ARGUMENTS from FND_FORM_CUSTOM_ACTIONS WHERE (RULE_ID = 2243);
BUILTIN_ARGUMENTS
--------------------------------------------------------------------------------
='http://prod.client.com:3001/ords/f?p=1:2:::NO::P_ORDER_HEADER_ID,P_SESSION
_ID:'||${item.ORDER.HEADER_ID.VALUE}||','||${ps.db_session_id.value}
出于需要,我必须将这个prod.client.com:3001更新为
当我在下面执行时,得到错误
GEMS@TEST1>update FND_FORM_CUSTOM_ACTIONS set = '='http://test1-scan.client.com/ords/f?p=1:2:::NO::P_ORDER_HEADER_ID,P_SESSION
_ID:'||${item.ORDER.HEADER_ID.VALUE}||','||${ps.db_session_id.value}' WHERE (RULE_ID = 2243);
SP2-0552: Bind variable "NO" not declared.
GEMS@TEST1>
我知道我可能必须使用转义字符或声明变量,但由于我不太擅长编码,因此无法获得线索。在这种情况下使用REPLACE更好
UPDATE fnd_form_custom_actions
SET builtin_arguments = REPLACE (builtin_arguments, 'prod.client.com:3001',
'test1-scan.client.com')
WHERE rule_id = 2243 ;
您的陈述中有明显的拼写错误:
set = '='http://test1-scan.client.com/ords/f?p=1:2:::NO [.......]
设置什么=
那么:第二个等号在单引号中是什么?或我明白了-您是指指定字符串中的单引号吗?必须输入两个单引号才能表示字符串中的一个单引号
然后:因为第二个等号使用单引号,所以它后面的内容不被引用。因此:NO被视为绑定变量。更正语法,Oracle不会询问您任何绑定变量
解决了这个问题后,请查看Kaushik的答案,寻找更好的解决方法。你需要设置问题的格式,很难理解你想做什么。你现在可以检查一下吗谢谢,它解决了问题的目的。再次感谢您的及时回复。
set = '='http://test1-scan.client.com/ords/f?p=1:2:::NO [.......]