Skip to Main Content

Japanese

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

UTL_FILE.FOPENの最大読み取りファイルサイズについて

keiji.kMar 11 2013 — edited Mar 12 2013
いつもお世話になっております。

現在、外部ファイルを読み込んで、テーブルにInsertする処理を考えております。
その外部ファイルは、1行100バイト、行数にして50万行と大き目なファイルになっています。

このファイルを以下の形式でInsertしようと思っています。

vOPEN:= UTL_FILE.FOPEN(”C:\Hoge” ,"Hoge.csv",'r', 32767);
LOOP
  UTL_FILE.GET_LINE(vOpen, vInput,32767);
  -- ここでインサート処理 (中略)
EXCEPTION
WHEN NO_DATA_FOUND THEN
  -- 最終行まで読み込んだ
  NULL;
END;

しかし、エラーにて帰ってきます。
----------------------------------------------------------------------------------
ORA-06502: PL/SQL: 数値または値のエラー:
文字列バッファが小さすぎます。が発生しました。
----------------------------------------------------------------------------------
これは読み込もうとしているファイルサイズが大きすぎると思われますが、
PLSQLで実装するためには、読み込みファイルを分割などするしか方法はないのでしょうか?
また、サイズの大きいファイルをInsertする良い方法をご存知の方がいましたらご教示をお願い致します。

※調べてみましたが、32767は「1行当たりのサイズ上限」と書いているブログもありました。
(真相は1行当たりのサイズではなく、1ファイルのサイズであっているのでしょうか・・・?)
ttp://ameblo.jp/archive-redo-blog/entry-10034793463.html

どうかよろしくお願い致します。
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 9 2013
Added on Mar 11 2013
3 comments
10,524 views