麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > Oracle > 正文

ORACLE 超長字符串問題的解決辦法

2024-08-29 13:58:28
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了ORACLE 超長字符串問題的解決辦法,需要的朋友可以參考下

前兩天我在工作中遇到這樣一個問題,我們有一個程序是用來增量抽取EBS 中的表數據的,有的是全量抽取,即先刪除原表中的數據,然后重新抽取數據,示例代碼如下:

 

 
  1. truncate table ods_emp drop storage; 
  2. insert into ods_emp select * from emp; 

另外一種方式是增量抽取,用的是merge語句,這里就不寫了;)

接觸過EBS庫存模塊的同志們知道,INV中的物料表是MTL_SYSTEM_ITEM_B,這個表的字段那叫一個多!我之前搞錯了,用的是第一種方案提取的,這就會導致我的程序運行之后數據會大量減少(原因是臨時表只有一兩天的數據,大家懂得)。恰好這問題是在調試程序時出現的,并且不只是我負責的INV出現了問題,其他同事的模塊也有。于是項目經理怒了,發話:今天誰搞不完,加班!

我可不想加班,趕緊把語句由INSERT寫成MERGE。寫完一運行,報錯:

哦,原來是字符超長了。在這里我就不把之前的程序寫這里了,以免嚇到大家。我用下面的代碼來模擬這個錯誤吧:

 

 
  1. SQL> DECLARE 
  2. v_str VARCHAR(); 
  3. v_cnt NUMBER; 
  4. BEGIN 
  5. v_str := RPAD('select count(*) from emp',); 
  6. EXECUTE IMMEDIATE v_str INTO v_cnt; 
  7. dbms_output.put_line('v_cnt: '||v_cnt); 
  8. END; 
  9. DECLARE 

第 1 行出現錯誤:

ORA-06502: PL/SQL: 數字或值錯誤 : 字符串緩沖區太小

ORA-06512: 在 line 5

我想這還不好辦嘛,直接把varchar2改成long??墒沁€是報錯了:

 

 
  1. SQL> DECLARE 
  2. v_str LONG; 
  3. v_cnt NUMBER; 
  4. BEGIN 
  5. v_str := RPAD('select count(*) from emp',); 
  6. EXECUTE IMMEDIATE v_str INTO v_cnt; 
  7. dbms_output.put_line('v_cnt: '||v_cnt); 
  8. END; 
  9. DECLARE 

第 1 行出現錯誤:

ORA-06502: PL/SQL: 數字或值錯誤 : 字符串緩沖區太小

ORA-06512: 在 line 5

我之前在網上查的是LONG類型支持2G的大小,不知為啥,這次報錯了。平時由于工作的限制,很少接觸像LONG,LOB,CLOB等大數據類型,以后可得仔細研究下了。

自己當時有點兒著急了,也想不出合適的辦法來,只能請教同事了。還真有一個同事遇到過,她把字符串變量定義成CLOB類型,具體請看代碼:

 

 
  1. DECLARE 
  2. v_str CLOB; 
  3. v_temp_str VARCHAR(); 
  4. v_cnt NUMBER; 
  5. BEGIN 
  6. dbms_lob.createtemporary(v_str,true);--創建一個臨時lob 
  7. v_temp_str := RPAD('select count(*) ',); 
  8. dbms_lob.append(v_str,v_temp_str);--把臨時字符串付給v_str 
  9. v_temp_str := RPAD('from emp ',); 
  10. dbms_lob.append(v_str,v_temp_str);--把臨時字符串付給v_str 
  11. EXECUTE IMMEDIATE v_str INTO v_cnt; 
  12. dbms_output.put_line('v_cnt: '||v_cnt); 
  13. dbms_lob.freetemporary(v_str);--釋放lob 
  14. END; 

運行結果:v_cnt: 14

總結:1.用CLOB類型可以處理字符串超長的情況;

2.ORACLE 的大數據類型還須研究。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91久久国产露脸精品国产 | 亚洲精品久久久久久 | 最新中文字幕日本 | 国产三级精品最新在线 | 99视频网址 | 国产午夜精品久久久久久免费视 | av免费在线观看免费 | 中国成人在线视频 | 亚洲电影在线观看高清免费 | ⅴideo裸体秀hd| 毛片在线免费 | 日日草夜夜操 | 黄色特级大片 | 狠狠干夜夜操 | 黄色网页在线看 | 久久精品亚洲欧美日韩精品中文字幕 | 在线成人影视 | 中文字幕欧美一区二区三区 | 91成人午夜性a一级毛片 | 欧美一级免费高清 | 精品在线观看一区 | 91 久久| 操碰97 | a视频网站 | 日韩黄色片免费看 | 亚洲欧美日韩中文在线 | 中文字幕电影免费播放 | 欧美视频一区二区三区在线观看 | 亚洲欧美一区二区三区在线观看 | 国产精品自拍99 | 久久亚洲精品国产一区 | 免费在线观看中文字幕 | 免费国产之a视频 | 欧美成人午夜精品久久久 | 欧美一区二区三区免费不卡 | 高清一区二区在线观看 | 一级成人毛片 | 久草在线高清视频 | 红杏亚洲影院一区二区三区 | 日日噜噜噜夜夜狠狠久久蜜桃 | 最新中文字幕免费视频 |