\r\n\r\n

ストアドプロシージャと機能の違い

ストアドプロシージャとファンクションは、プログラミングブロックの2つのタイプです。どちらもプライマリーコールネームを持っています。これらの呼び出し名は、別のプログラミングブロック(プロシージャ、関数、パッケージ、SQLクエリなど)内で呼び出すために使用されます。どちらのオブジェクトタイプも引数を受け取り、これらのオブジェクトの背後でタスクを実行します。これは、ストアドプロシージャを作成するための(Oracleの)構文です。

ストアドプロシージャと関数

ストアドプロシージャとファンクションは、プログラミングブロックの2つのタイプです。どちらもプライマリーコールネームを持っています。これらの呼び出し名は、別のプログラミングブロック(プロシージャ、関数、パッケージ、SQLクエリなど)内で呼び出すために使用されます。どちらのオブジェクトタイプもパラメータを受け取り、これらのオブジェクトの背後でタスクを実行します。これは、以下のようなストアドプロシージャを作成するための構文です(ORACLEの場合)。

プロセスプログラムの名称変更(パラメータ)の作成または置換

として

スタート

ステートメント

例外事項

例外処理

結論

以下は、以下のような関数を作成するための構文です(ORACLEの場合)。

関数の機能名(パラメータ)を作成または置換する

return returns_datatype

として

スタート

ステートメント

戻り値/変数を返す。

例外あり。

例外処理。

結論

ストアドプロシージャ

前述したように、ストアドプロシージャはプログラミングブロックという名前がついています。ユーザーの入力としてパラメータを受け取り、それを処理し、手順の背後にある論理に従って結果を与える(または特定の操作を行う)。これらのパラメータには、IN、OUT、INOUTのタイプがあります。変数宣言、変数代入、制御文、ループ、SQLクエリ、その他の関数/プロシージャ/パッケージの呼び出しは、プロシージャ本体に記述することができます。

機能

関数はプログラミングブロックとも呼ばれ、return文を使って値を返す必要があり、値を返す前に本体も(与えられたロジックに従って)何らかの処理を行う。関数は、実行するためのパラメータも受け付ける。関数は、クエリの中から呼び出すことができます。SELECTクエリ内で関数が呼び出されると、SELECTクエリの結果セットの各行に対して適用されます。それらは

  • 単一行関数(クエリの各行に対して1つの結果を返す)

一行機能のサブカテゴリがあります。

  • 数値演算機能(ABS、SIN、COSなど)
  • 文字関数(CONCAT、INITCAPなど)
  • 日付・時刻機能(最終日、翌日など)
  • 変換機能(例:TOU CHAR、TOU DATE)
  • セット機能(例:ベース、セット)
  • 集計機能(複数の行の集合をもとに行を返す。例:平均、合計、最大)
  • パース機能
  • オブジェクト参照機能
  • モデル機能
  • ユーザー定義機能
関数とストアドプロシージャーの違いは何ですか?-すべての関数は return 文を使用して値を返さなければなりません。ストアドプロシージャは、RETURNステートメントを使用して値を返しません。プロシージャ内のRETURN文は、その制御を呼び出し元のプログラムに返します。OUTパラメータは、プロシージャから値を返すために使用できます。-ファンクションはクエリ内部で呼び出すことができますが、ストアドプロシージャはクエリ内部で使用することはできません。-関数を作成するには戻り値のデータ型を含む必要がありますが、プロシージャのDDLでは不要です。
  • 2020-11-04 19:04 に公開
  • 閲覧 ( 24 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ