質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.42%
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Oracle Database 11g

Oracle DatabaseはRDBMSの商品です。具体的な発売商品として知られているのが、 Oracle9i、Oracle10g、Oracle 11gとOracle 12cです。

PL/SQL

PL/SQL (Procedural Language/Structured Query Language) はOracle CorporationによるSQL(非手続き型言語)を手続き型言語に拡張させるために開発されたプログラミング言語です。

Q&A

解決済

1回答

10720閲覧

PL/SQLのプロシージャによるtxtファイルの読み込み・内容出力

MeguroHarumi

総合スコア14

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Oracle Database 11g

Oracle DatabaseはRDBMSの商品です。具体的な発売商品として知られているのが、 Oracle9i、Oracle10g、Oracle 11gとOracle 12cです。

PL/SQL

PL/SQL (Procedural Language/Structured Query Language) はOracle CorporationによるSQL(非手続き型言語)を手続き型言語に拡張させるために開発されたプログラミング言語です。

0グッド

0クリップ

投稿2017/09/16 10:57

OracleのPL/SQLでutl_fileを用いてのファイルの読み込みが上手くできずに困っています。やりたい内容は、DBサーバにあるテキストファイルを、PL/SQLのプロシージャで読み込んで内容を表示するというものです。

◆バージョン
OracleDB(11g)

◆OS
Linux CentOS release 6.8 (Final)

◆PL/SQLコード
/* -------------------------------------------------------------------*/
CREATE OR REPLACE
PROCEDURE TEST_20170826
IS
no NUMBER :=10;
read utl_file.file_type;
buf varchar2(1022);

BEGIN
no := no + 100;
DBMS_OUTPUT.PUT_LINE(no);

--Open file in 'Read Mode'
dbms_output.put_line('OK_1');
read := utl_file.fopen('/tmp/plsqltest-20170916/','test.txt','r');
dbms_output.put_line('OK_2');

loop
begin
-- read the file
utl_file.get_line(read,buf);
dbms_output.put_line('data: '||buf);
dbms_output.put_line('OK_3');
exception
-- end the loop when we come to the end of file
when no_data_found then
dbms_output.put_line('ER-0001 : Fail To Read The File');
exit;
end;
end loop;

-- file close
utl_file.fclose(read);

EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('ER-0000 : Other Exception');
END TEST_20170826;
/* -------------------------------------------------------------------*/

◆実行結果
Connecting to the database TESTUSR.
110
OK_1
ER-0000 : Other Exception
Process exited.
Disconnecting from the database TESTUSR.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

sysユーザーなどでCREATE DIRECTORYとGRANTは行いましたか?
UTL_FILE パッケージの使い方

コードは </> で囲んでください。
PL/SQLでエラーの時は SQLERRM の内容も表示しましょう。

投稿2017/09/16 11:17

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MeguroHarumi

2017/09/16 12:10

Orlofskyさん 素早く的確なご回答いただきありがとうございます。無事に解決いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.42%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問