[20220105]sqlplus &1替換最大支援239個字元.txt

lfree發表於2022-01-05

[20220105]sqlplus &1替換最大支援239個字元.txt

--//昨天遇到的問題,使用&3之類替換時,如果替換的字串超過一定長度,語句會報錯,做一個記錄。

1.環境:
SCOTT@book> @ ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

2.測試:
$ seq -f "%-1.0f" 1e9 90000011 1e10 | paste -sd',' >|aa.txt

$ cat t1.txt
select '&1' from dual ;
quit

$ rlsql -s -l scott/book @t1.txt 11111
'1111
-----
11111

$ rlsql -s -l scott/book @t1.txt $(cat aa.txt )
string beginning "1000000000..." is too long. maximum size is 239 characters.

$ echo  $(cat aa.txt )
--//輸出沒問題。根據提示應該是替換的字串超長了。最大239個字元。編輯aa.txt看看。

$ wc aa.txt
  1   1 240 aa.txt
--//刪除回車相當於239個字元。
$ rlsql -s -l scott/book @t1.txt $(cat aa.txt )
'1000000000,1090000011,1180000022,1270000033,1360000044,1450000055,1540000066,1630000077,1720000088,1810000099,1900000110,1990000121,2080000132,2170000143,2260000154,2350000165,2440000176,2530000187,
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1000000000,1090000011,1180000022,1270000033,1360000044,1450000055,1540000066,1630000077,1720000088,1810000099,1900000110,1990000121,2080000132,2170000143,2260000154,2350000165,2440000176,2530000187,2620000198,2710000209,2800000220,28900002

--//大家可以自行嘗試增加1個字元就不行了。
--//不知道為什麼sqlplus有這個限制。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2850688/,如需轉載,請註明出處,否則將追究法律責任。

相關文章