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

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

新規登録して質問してみよう
ただいま回答率
85.50%
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

0回答

866閲覧

Oracle Database 11g PL/SQLにて可変ディレクトリパスでのファイル操作を行いたい

takuya500

総合スコア2

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クリップ

投稿2020/04/22 05:02

編集2022/01/12 10:55
・Oracle Database 11g PL/SQLにて可変ディレクトリパスでのファイル操作を行いたい

現在実装中のPL/SQLの機能にて、UTL_FILE.FOPEN_NCHAR などを用いて、事前に定義したディレクトリオブジェクト名を指定しての
ファイル操作を行っていたのですが、ファイルパス部分を実行中取得した値によって可変にする必要が出てきました。

PL/SQL実行前に手動で新規にディレクトリオブジェクトの作成などを行えばもちろん問題ないのですが、
実行前の手動での設定、操作などは想定していないので全て自動で行う必要があります。

PL/SQL実行中にディレクトリオブジェクトを操作すれば実現可能かと思い、ネットで調査したところ
自分の実装したいことが可能になりそうな記載は見つけることができませんでした。

/*[1].ファイルオープン*/ FILEHANDLE := UTL_FILE.FOPEN_NCHAR('DIRECTORY_PATH', FILENAME, 'w'); -- データ取得処理 開始. /*[2].ファイル書き込み*/ UTL_FILE.PUT_LINE_NCHAR(FILEHANDLE , DATA); -- データ取得処理 終了. /*[3].ファイルクローズ*/ UTL_FILE.FCLOSE(FILEHANDLE);

上記は現行のファイル出力処理部分ですが、このようにシンプルですが事前定義した
ディレクトリオブジェクト名を指定して、出力を行っています。

このコメント部分[1]の、ファイルオープンの処理を行っている箇所について、
ディレクトリオブジェクトを渡して事前定義した固定のパスを利用するのではなく、
可変の値(パス)によって出力先を決定するようにしたいのです。

見出しの件について、何か良い手法はありませんでしょうか。
ご教授をお願いしたく質問させていただきました。


・補足情報

select * from v$version;
使用しているデータベースはOracle Databaseで、上記SQLを用いて調査したバージョンなどを補足します。

Oracle Database 11g Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
"CORE 11.2.0.4.0 Production"
TNS for 64-bit Windows: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production


不足している情報などありましたら随時追記を行います。
よろしくお願いいたします。

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

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

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

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

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

Orlofsky

2020/04/22 05:59

タイトルと本文の固有名詞は正しく書きましょう。 /PLSQL ↓ PL/SQL
takuya500

2020/04/22 07:36

ご指摘ありがとうございます。 ご指摘の内容を参考に、追記、修正を行いました。 内容につきまして不足、不適切な部分がありましたら、 お手数ですが再度ご指摘いただけますと幸いです。 よろしくお願いいたします。
Orlofsky

2020/04/22 08:59

ここはPL/SQLの質問もできる数少なそうな掲示板です。PL/SQLの初心者もググってこの質問にたどり着くこともあるでしょう。 SYSなどの権限を持ったユーザーでCREATE DIRECTORY 文を実行。 UTL_FILEを実行する部分も最低限無名ブロックで DECLARE BEGIN END ; / を省略しないで実行できる形にしませんか? >ファイル操作を行っていたのですが、ファイルパス部分を実行中取得した値によって可変にする必要が出てきました。 なぜそんなことをしないといけないのか、その辺の事情も質問に追記されては?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問