簡體   English   中英

替換表列中的一部分字符串

[英]Replace part of string in table column

刪除表中的部分字符串為例,我想用其他字符串更改數據庫列中部分字符串。

例如:

數據庫顯示E:\\websites\\nas\\globe.pngE:\\websites\\nas\\apple.png

我想說\\\\nas\\globe.png\\\\nas\\apple.png

我只想替換的部分是E:\\websites\\而不是其余的字符串

我該怎么做呢?

到目前為止,我有:

SELECT file_name,  
REPLACE(file_name,'E:\websites\','\\nas\')   
FROM t_class;

我剛剛引用了http://nntp-archive.sybase.com/nntp-archive/action/article/%3C348_1744DC78C1045E920059DE7F85256A8B.0037D71C85256A8B@webforums%3E

並使用:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM