sql >> データベース >  >> RDS >> Oracle

Oracleの関数とプロシージャ

    違いは次のとおりです。関数はデフォルトでその定義の値(任意のタイプ)を返す必要がありますが、プロシージャの場合はOUTなどのパラメータを使用する必要があります またはIN OUT 結果を取得するためのパラメータ。通常のSQLで関数を使用できます ここで、SQLではプロシージャを使用できません。 ステートメント。

    機能と手順のいくつかの違い

    1. 関数は常にreturnステートメントを使用して値を返しますが、プロシージャはパラメータを介して1つ以上の値を返すか、まったく返さない場合があります。ただし、OUT パラメータは引き続き関数で使用できますが、お勧めできません。また、使用する必要がある場合もありません。 OUTを使用する パラメータは、関数がSQLステートメントで使用されることを制限します。

    2. 関数は、SELECTなどの一般的なSQLステートメントで使用できます。 、INSERTUPDATEDELETEMERGE 、手順はできません。

    3. 関数は通常、計算に使用されますが、プロシージャは通常、ビジネスロジックの実行に使用されます。

    4. Oracleは、後続のSQLステートメントのパフォーマンスを向上させるために「関数ベースのインデックス」を作成する機能を提供します。これは、クエリのwhere句のインデックス付き列で関数を実行する場合に適用されます。

    関数対の詳細情報。こことここの手順。



    1. 準同期レプリケーションセットアップでクラッシュしたMySQLマスターサーバーを再スレーブ化する

    2. MySQLエラー2014の原因他のバッファリングされていないクエリがアクティブな間はクエリを実行できません

    3. プリペアドステートメントを使用しないのはいつですか?

    4. T-SQLを使用してSQLServerで計算列を作成する