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

OracleDatabaseのPL/SQL関数の概要

    C、C ++、Javaなどのプログラミング言語を学んだことがある人にとって、関数の概念は新しいものではありません。関数は、実行可能ステートメントのグループに他なりません。関数を使用すると、同じプログラミングロジックを何度も書き直す必要がなくなります。では、Oracle PL/SQLで関数を定義するにはどうすればよいでしょうか。

    OracleDatabaseのPL/SQL関数とは何ですか?

    Oracle Databaseでは、PL / SQL関数を、明確に定義された特定のタスクを実行するための自己完結型のサブプログラムとして定義できます。関数はPL/SQLブロックと呼ばれます。これは、関数をデータベース・オブジェクトとしてデータベースに格納し、再利用できることを意味します。これが、一部の本がPL/SQL関数をストアド関数と呼んでいる理由でもあります。

    OracleデータベースのPL/SQL関数のタイプ

    OracleDatabaseには2種類のPL/SQL関数があります。これらは

    1. 値渡し関数と
    2. 参照渡し関数

    Oracle Databaseでは、両方のタイプの関数がいくつかの値を返す必要があり、これらの値は有効なSQLまたはPL/SQLデータ型である必要があります。

    OracleデータベースのPL/SQL関数の構文

    CREATE [OR REPLACE] FUNCTION function_name
    (Parameter 1, Parameter 2…)
    RETURN datatype
    IS
    	Declare variable, constant etc.  
    BEGIN
    	Executable Statements
    	Return (Return Value);
    END;
    

    同じトピックについて、YouTubeチャンネルのビデオチュートリアルでPL/SQL関数の構文について1行ずつ説明しました。そのチュートリアルに一度行って確認することをお勧めします。

    関数の実行方法

    創造性とプログラミングスキルに応じて、PL/SQL関数は複数の方法で呼び出すことができます。 OracleDatabaseでPL/SQL関数を呼び出す一般的な方法は次のとおりです

    1. OracleDatabaseのSQL*Plusユーティリティを使用して、PL/SQLから手続き型ステートメントとして呼び出すことができるPL/SQL関数を呼び出すことができます。
    2. 匿名のPL/SQLブロックを使用して関数を呼び出すこともできます。
    3. SELECTまたはDMLステートメントを直接呼び出すこともできます。

    次のチュートリアルでは、PL/SQL関数のこれらの実行方法のそれぞれについて説明します。

    関数の呼び出しに関する制限

    1. SQLデータ型を返す関数はSQL文内で使用でき、PL/SQLデータ型を返すPL/SQL関数はPL/SQLブロック内でのみ機能します。この規則の例外は、SQLクエリ内にDML操作を含む関数を呼び出すことができないことです。ただし、INSERT、UPDATE、およびDELETE内でDML操作を実行する関数を呼び出すことができます。
    2. テーブルのUPDATEまたはDELETEステートメントから呼び出された関数は、同じテーブルでクエリ(SELECT)またはトランザクション(DML)を実行できません。
    3. SQL式から呼び出される関数には、TCL(COMMITまたはROLLBACK)コマンドまたはDDL(CREATEまたはALTER)コマンドを含めることはできません

    OracleDatabaseのPL/SQL関数の概要に関するこのチュートリアルは以上です。非常に単純な例を使用してPL/SQL関数の作成を示す次のチュートリアルを必ず確認してください。

    また、毎月ランダムに選ばれた勝者の1人にRebellionRiderの商品をプレゼントしているので、このブログをソーシャルメディアで共有してください。さらなるアップデートについては、私のFacebookとTwitterでフォローしてください。

    読んでくれてありがとう&素晴らしい一日を!


    1. MySQL数学関数(全リスト)

    2. MariaDB JSON_QUOTE()の説明

    3. SQL Serverの文字列からすべての非アルファベット文字を削除するにはどうすればよいですか?

    4. PostgreSQLトリガーからメールを送信するにはどうすればよいですか?