2017-10-11 165 views
0

我有以下細節表更新命令

[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

回答

1

在這種情況下使用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

0

您的發言明顯的錯別字:

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

設置什麼 = .....?

然後:什麼是第二個等號,單引號? (OR ...我看到了 - 你指的是在指定字符串中的單引號嗎?你必須輸入兩個單引號來代表一個字符串中的單引號!)

然後:由於第二個等號消耗單引號,之後接下來的內容沒有被引用。所以:NO被視爲綁定變量。更正語法,Oracle不會問你任何綁定變量。

有了這個固定的,看看Kaushik的答案,完全採取更好的方法。