plsqlでテキストデータをインポートする方法
PL/SQLでは、UTL_FILEパッケージを利用してテキストデータをインポートすることが出来ます。以下に、UTL_FILEを利用したサンプルを記述しますのでご参考にしてください。
最初に、テキストファイルを格納するためのディレクトリをデータベース・サーバーに作成します。例えば、以下のコマンドを使用してディレクトリを作成できます。
CREATE DIRECTORY my_dir AS ‘/パス/ディレクトリ’;
次に、以下のコードサンプルを使ってテキストデータをインポートできます。
file_handle := UTL_FILE.FOPEN(file_dir, file_name, ‘R’);
1行ずつファイルを読み込んでデータを処理する
ループ
UTL_FILE.GET_LINE(file_handle, file_data);
— ここで各行のデータに対して処理を行う
-- 如果已到达文件末尾,则跳出循环
EXIT WHEN UTL_FILE.IS_OPEN(file_handle) = 0;
LOOP終了;
–ファイルを閉じる
UTL_FILE.FCLOSE(file_handle);
–例外処理
EXCEPTION
WHEN UTL_FILE.INVALID_PATH THEN
DBMS_OUTPUT.PUT_LINE(‘無効なパスです。’);
WHEN UTL_FILE.INVALID_MODE THEN
DBMS_OUTPUT.PUT_LINE(‘無効なモードです。’);
WHEN UTL_FILE.INVALID_FILEHANDLE THEN
DBMS_OUTPUT.PUT_LINE(‘無効なファイルハンドルです。’);
WHEN UTL_FILE.READ_ERROR THEN
DBMS_OUTPUT.PUT_LINE(‘ファイルの読み込みに失敗しました。’);
WHEN UTL_FILE.WRITE_ERROR THEN
DBMS_OUTPUT.PUT_LINE(‘ファイルの書き込みに失敗しました。’);
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(‘不明なエラーが発生しました。’);
END;
–注意: ファイルのパスと名前は、実際の設定に応じて書き換えてください。また、データベースサーバーがテキストファイルを読み取る権限を持っていることを確認してください。
更に、必要に応じて、各行データを更に処理できます。データベーステーブルへの挿入など、その他の操作を行うことができます。