作者fantasyj (如夢似幻)
看板Database
標題Re: [SQL ] 關於字串內有'&'
時間Tue Jun 23 13:16:49 2009
※ 引述《trewkkk (1234567)》之銘言:
: 請問一下各位大大
: 我是使用oracle
: 在寫function時
: 需要使用到substr('&12345',1,1)
: 可是資料庫會把上面那個字串當成:12345的變數
: 有什麼方法可以抓出第一個字元'&'呢
: 目前我的解決方法為寫死的
: 因為'&12345'整串去比對則沒問題
: 先謝謝各位大大了
我的意思是'&12345'是table內的值,假設是test table的val欄位有一個值為'&12345'
select substr(val,1,1) from test
這樣的話他會將val看成為:12345
當成一個變數 囧
所以還請各位大大幫忙囉 XD
照你說的是oracle db裡的某個table裡的一個欄位會可能有&開頭的value,
我在自己公司做了一段測試是正常的, 沒你說的那種問題,
你可以跟著試試以下這段sql是不是正常,
SELECT A.TEST, SUBSTR(A.TEST, 1, 1)
FROM (SELECT '&' || '12345' TEST
FROM DUAL
UNION ALL
SELECT '312' || '&' || '5' TEST
FROM DUAL
UNION ALL
SELECT '982&' TEST FROM DUAL) A;
測試環境︰Oracle9i Enterprise Edition Release 9.2.0.7.0 - 64bit Production
PL/SQL Release 9.2.0.7.0 - Production
開發軟體︰PL/SQL developer & TOAD 都ok無誤 o.o
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.3.165.131
推 trewkkk:謝謝大大 不知道為什麼 現在不會出現之前那種情況了 06/24 11:27
推 trewkkk:現在連直接select substr('&12345') from dual 都沒問題.. 06/24 11:40
推 trewkkk:總之謝謝各位啦 sunstr('&12345',1,1) 06/24 11:44