[英]Replace part of string in table column
以刪除表中的部分字符串為例,我想用其他字符串更改數據庫列中部分字符串。
例如:
數據庫顯示E:\\websites\\nas\\globe.png
, E:\\websites\\nas\\apple.png
等
我想說\\\\nas\\globe.png
, \\\\nas\\apple.png
,
我只想替換的部分是E:\\websites\\
而不是其余的字符串
我該怎么做呢?
到目前為止,我有:
SELECT file_name,
REPLACE(file_name,'E:\websites\','\\nas\')
FROM t_class;
並使用:
SELECT REPLACE('E:\websites\web\Class\Main_Image\','E:\websites\web\Class\Main_Image\','\\nas\class_s\Main_Image\') "Changes"
FROM DUAL;
但再次不會改變Oo
在Oracle中,您可能需要加倍反斜杠:
SELECT file_name,
REPLACE(file_name,'E:\\websites\\', '\\\\nas\\')
FROM t_class;
有趣的是,使用regexp_replace
:
SQL> with tbl(filename) as (
2 select 'E:\websites\nas\globe.png' from dual
3 union
4 select 'E:\websites\nas\apple.png' from dual
5 )
6 select filename, regexp_replace(filename, 'E:\\websites', '\\') edited
7 from tbl;
FILENAME EDITED
------------------------- --------------------
E:\websites\nas\apple.png \\nas\apple.png
E:\websites\nas\globe.png \\nas\globe.png
SQL>
我找到了有關如何通過SQL存儲過程替換列值的字符串值的參考
通過執行以下操作:
UPDATE t_class SET file_name =
REPLACE
(file_name, 'E:\websites\web\Class\Main_Image\No_Image_Available.png', '\\nas\class_s\Main_Image\No_Image_Available.png');
所以唯一的區別是update
和=
符號
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.