2013-03-14 176 views
0

的列的值,如果有一個名稱欄PLSQL代碼來替換字符

name 

prashant 

ram 

然後列值應成爲這樣 名

############################## 
# Name  | Replaced_value # 
############################## 
# prashant | XXXXXXXX  # 
#   |     # 
# ram  | XXX   # 
############################## 

它已到更換由相同數量的的Xs。

回答

0

這將工作!

select name,substr(lpad(name,length(name)+length(name),'X'),1,length(name)) as replaced_name from table 
+0

但如果我們不得不更換與Xs.this語句從數據庫的名稱會顯示與Xs.what輸出,如果我們需要將它與兩個X存儲在數據庫中。 – prashant 2013-03-14 07:48:40

+0

你的意思是你需要用X的 更新表中以前的名字,然後使用更新語句,如 'update table a set name =(select substr(lpad(name,length(name)+ length(name),' X'),1,從表b長度(姓名)),其中a.name = b.name);' – Aspirant 2013-03-14 07:56:54

+0

否則如果要只是顯示輸出兩列然後 '選擇名稱,SUBSTR(LPAD(姓名,長度(名稱)+長度(名稱),'X'),1,長度(名稱))作爲repla_name_name從表' – Aspirant 2013-03-14 07:58:15

3

您可以結合LPAD/RPAD和長度

LPAD('X',LENGTH(InputString),'X') 
+1

比接受的答案要容易得多。 – 2016-03-16 17:28:40