ホームページ >データベース >Oracle >Oracleのプロシージャと関数の違いは何ですか

Oracleのプロシージャと関数の違いは何ですか

WBOY
WBOYオリジナル
2022-05-31 15:28:414056ブラウズ

Oracle プロシージャと関数の違い: 1. Oracle プロシージャには 0 個以上のパラメータがあり、戻り値はありませんが、Oracle 関数にはパラメータがないか、複数のパラメータと戻り値があります; 2. Oracle プロシージャと呼ばれます。 oracle 関数は正当な式として呼び出されますが、独立した実行ステートメントとして呼び出されます。

Oracleのプロシージャと関数の違いは何ですか

このチュートリアルの動作環境: Windows 10 システム、Oracle バージョン 12c、Dell G3 コンピューター。

Oracle プロシージャと関数の違いは何ですか?

1. Oracle プロシージャと関数は、コンパイルされた形式でデータベースに保存されます。

関数にはパラメータを含めないか、パラメータを多く含めることができます。 . パラメータと戻り値。

プロシージャには 0 個以上のパラメータがあり、戻り値はありません。

2. 関数とプロシージャは両方とも、パラメーター リストを通じて 0 個以上の値を受け取ったり返したりすることができます。関数とプロシージャの主な違いは戻り値ではなく、呼び出し方法です。

Oracle プロシージャは独立した実行ステートメントとして呼び出されます:

pay_involume(invoice_nbr,30,due_date);

関数は正当な式として呼び出されます:

order_volumn:=open_orders(SYSDATE,30);

プロシージャを作成するための構文は次のとおりです:

Oracleのプロシージャと関数の違いは何ですか

各パラメータの構文は次のとおりです。

paramter_name mode datatype [(:=|DEFAULT) value]

拡張知識:

mode には 3 つの形式があります: IN、OUT、入出力。

IN は、プロセスが呼び出されたときに、実パラメータの値がプロセスに渡されることを意味します。仮パラメータは読み取り専用とみなされます。プロセスが終了すると、コントロールはコントロールに戻ります実際のパラメータの値は変更されません。

OUT プロシージャを呼び出すとき、実パラメータの値は無視されます。プロシージャ内では、仮パラメータには値を代入することのみが可能ですが、データを読み取ることはできません。仮パラメータの内容プロシージャ終了後に割り当てられる実際のパラメータ。

INOUT モードは IN と OUT の組み合わせです。Oracle プロセス内では、実パラメータの値が仮パラメータに渡されます。ステータス パラメータの値は、読み取りまたは書き込みが可能です。プロセス後終了すると、ステータス パラメータの値が実際のパラメータに割り当てられます。

推奨チュートリアル: 「Oracle ビデオ チュートリアル

以上がOracleのプロシージャと関数の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。