更新命令

更新命令

问题描述:

我有以下细节表更新命令

[email protected]>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"

"test1-scan.client.com" 

当我下面得到错误

执行更新
[email protected]>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.  

[email protected]> 

我知道我可能不得不使用转义字符或声明变量,但没有得到线索因为我不擅长编码。

+0

你必须格式化这个问题,它很难理解你想要做什么。 – saitejalakkimsetty

+0

你现在可以检查 – user2500742

在这种情况下使用REPLACE更好。

UPDATE fnd_form_custom_actions 
SET builtin_arguments = REPLACE (builtin_arguments, 'prod.client.com:3001', 
            'test1-scan.client.com') 
WHERE rule_id = 2243 ; 
+0

非常感谢,它解决了这个目的。再次感谢您的及时回应。 – user2500742

您的发言明显的错别字:

set = '='http://test1-scan.client.com/ords/f?p=1:2:::NO [.......] 

设置什么 = .....?

然后:什么是第二个等号,单引号? (OR ...我看到了 - 你指的是在指定字符串中的单引号吗?你必须输入两个单引号来代表一个字符串中的单引号!)

然后:由于第二个等号消耗单引号,之后接下来的内容没有被引用。所以:NO被视为绑定变量。更正语法,Oracle不会问你任何绑定变量。

有了这个固定的,看看Kaushik的答案,完全采取更好的方法。