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

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

新規登録して質問してみよう
ただいま回答率
85.49%
PL/SQL

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

Q&A

3回答

18698閲覧

プロシージャ内でファンクションの記述は可能でしょうか

nanae2222

総合スコア29

PL/SQL

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

0グッド

0クリップ

投稿2015/09/17 10:12

編集2015/09/17 10:35

表題の通りですが、プロシージャ内でファンクションを書くことは可能でしょうか?

いろいろ試してるのですが上手くいかないので、そもそも無理なのではないか、と思った次第です。詳しいかた宜しくお願いします。

DB : oracle10g

(追記)
プロシージャに値を渡して、その値と一致するレコードを取得しテキストファイルに出力しています。
取得したレコードを編集して出力するために、編集ファンクションを作りたいと考えています。

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

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

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

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

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

guest

回答3

0

サブプログラムとしてFUNCTIONを定義すれば簡単です。
PL/SQL言語リファレンス PL/SQLサブプログラム

投稿2015/11/12 01:47

Orlofsky

総合スコア16415

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

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

0

PROCEDURE内でFUNCTIONは宣言できないと思います。
PACKAGEならできますよ :D

参考: ORACLE/PACKAGE編 - オラクルちょこっとリファレンス

投稿2015/09/17 10:21

ryunix

総合スコア1656

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

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

nanae2222

2015/09/17 10:32

プロシージャに引数を持たせているのですが、パッケージにするとどのように渡せばいいのでしょうか…?
ryunix

2015/09/17 10:34

パッケージ名.プロシージャ名(引数) で行けたはずです :)
nanae2222

2015/09/17 10:36

おおほんとですか! それは無名ブロックで実行できるのでしょうか。
nanae2222

2015/09/17 11:01

さようですか! とても有難い…。実行環境がいまないのでパッケージのコーディングだけして明日コンパイルしてみますね????
ryunix

2015/09/17 11:07

私のほうも実行環境がないので、試せず申し訳ありませんが、うまく行くことを願ってます :D
guest

0

用途が論理的にプロシージャとファンクションをまとめておきたい、ということであれば、
packageが利用できるかもしれません。

package内に複数のプロシージャ、ファンクションを定義できます。

投稿2015/09/17 10:18

takyafumin

総合スコア2335

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

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

nanae2222

2015/09/17 10:30

パッケージですか…!プロシージャに引数もたせて無名ブロックで実行しているのですが、パッケージにする場合どのように引数渡せばよいのでしょうか?
takyafumin

2015/09/18 01:54

ryunixさまの回答にあるように、 「パッケージ名.プロシージャ名(引数)」 で実行できます。 別サイトの紹介で申し訳ないですが、以下ページにpackageを用いたサンプルプログラムの記載がございます。 http://otn.oracle.co.jp/sample_code/db_connect/pl_sql/pl_sql4.txt otn(Oracle Technology Network)にはPL/SQLのサンプルや技術的なBBSもあるため、参考事例を探すのにおすすめです。(Oracleのサイトです)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問