2013-07-24 28 views
1

我想從特定表格的列中移除一段字符串。我希望刪除的字符串是&過期及其後的所有內容,但在&過期之前保留所有內容。有沒有辦法用update語句來完成或者需要一個存儲過程?解析varchar2列值

表列的值是:

起始值:DAABq3J65GvwBABbWdkFOnpCj2mEA1lMonZBZADcTYJR6QuLPUlfZBtMyoEl4x2JXQ49cOzjZAStQxWNOgrurtnMNIw04bmOcQ4SsrjuPKH4AZBBBAf8ZBjWhs8BM52aC0OpnPGzjm6V2x50qk6wboT&expires=5183999

期望的終結值:

DAABq3J65GvwBABbWdkFOnpCj2mEA1lMonZBZADcTYJR6QuLPUlfZBtMyoEl4x2JXQ49cOzjZAStQxWNOgrurtnMNIw04bmOcQ4SsrjuPKH4AZBBBAf8ZBjWhs8BM52aC0OpnPGzjm6V2x50qk6wboT 

回答

8
update table set column = regexp_replace(column, '&'||'expires=.*$') 
+0

,這並不爲我工作。在運行您提供的更新語句時,系統會提示一個對話框,要求我爲EXPIRES輸入一個替換變量:我嘗試輸入一個空格或根本沒有,並且更新不起作用。腳本輸出爲:old:update external_link set access_token = regexp_replace(access_token,'&expires =。* $') new:update external_link set access_token = regexp_replace(access_token,'=。* $') 已更新519行。 – c12

+0

@ c12 - 答覆已更新。 –

+0

@ c12:嘗試用'CHR(38)'替換''&''。 –