ホームページ  >  記事  >  データベース  >  Oracle ストアド プロシージャの変数に値を割り当てる方法

Oracle ストアド プロシージャの変数に値を割り当てる方法

PHPz
PHPzオリジナル
2023-04-04 10:40:225006ブラウズ

Oracle ストアド プロシージャは、データベース操作コードを保存および管理するために Oracle データベースで使用されるテクノロジです。ストアド プロシージャは、データベース管理者または開発者が作成および保守できるプリコンパイルされた SQL コードです。 Oracle ストアド プロシージャでは、変数は非常に重要なコンポーネントです。この記事では、Oracle ストアド プロシージャの変数に値を割り当てる方法に焦点を当てます。

Oracle ストアド プロシージャの変数

Oracle ストアド プロシージャでは、変数とは、値または値のグループを格納するために使用できるメモリ ユニットのセットです。変数名は一意であり、識別子の命名規則に従う必要があります。 Oracle ストアド プロシージャには、多くの種類の変数があります。 Oracle ストアド プロシージャで一般的に使用される変数タイプの一部を次に示します。

  1. CHAR: 固定長の文字データを格納するために使用されます。
  2. VARCHAR2: 可変長文字データの格納に使用されます。
  3. NUMBER: 数値データの保存に使用されます。
  4. BOOLEAN: true/false を格納するために使用されるブール値。
  5. DATE: 日付と時刻のデータを保存するために使用されます。
  6. TABLE: コレクション データ型を格納するために使用されます。
  7. REF CURSOR: カーソル変数の保存に使用されます。

変数への値の割り当て

Oracle ストアド プロシージャは、さまざまな方法で変数に値を割り当てることができます。一般的な方法には、直接代入、SELECT INTO ステートメント、パラメータの受け渡しなどがあります。

  1. 直接代入

直接代入は、Oracle ストアド プロシージャの変数に値を割り当てる最も簡単な方法です。直接代入の構文は次のとおりです。

variable_name := value;

ここで、variable_name は変数名、value は変数の値です。たとえば、次のストアド プロシージャは、直接割り当てを使用して変数に値を割り当てる方法を示しています。

CREATE OR REPLACE PROCEDURE assign_variable
IS
  x VARCHAR2(100);
BEGIN
  x := 'Hello, World!';
  DBMS_OUTPUT.PUT_LINE(x);
END;

上記のストアド プロシージャでは、VARCHAR2 型の変数 x を使用し、値を 'Hello, World' に割り当てます。 ! '。次に、 DBMS_OUTPUT.PUT_LINE ステートメントを使用して変数値を出力します。

  1. SELECT INTO ステートメント

SELECT INTO ステートメントは、Oracle ストアド プロシージャの変数に値を割り当てるためによく使用されるもう 1 つの方法です。 SELECT INTO ステートメントは、データベース テーブルからデータを選択し、そのデータを変数に格納します。 SELECT INTO 文の構文は次のとおりです。

SELECT column_name(s) INTO variable_name(s) FROM table_name WHERE condition;

このうち、column_name はテーブルから選択する列名、または実行する SQL 関数の名前です。 variable_name(s) は、列値または関数の戻り値を格納する必要がある変数の名前です。 table_name は値が必要なテーブルの名前で、condition はオプションの WHERE 句です。たとえば、次のストアド プロシージャは、SELECT INTO ステートメントを使用して変数に値を割り当てる方法を示しています。

CREATE OR REPLACE PROCEDURE get_employee_name
IS
  emp_name VARCHAR2(100);
BEGIN
  SELECT first_name INTO emp_name FROM employees WHERE employee_id = 100;
  DBMS_OUTPUT.PUT_LINE('Employee name is ' || emp_name);
END;

上記のストアド プロシージャでは、VARCHAR2 型変数 emp_name を使用し、従業員の first_name を取得します。このemployee_idはemployees表データの100であり、その値をemp_name変数に格納します。次に、 DBMS_OUTPUT.PUT_LINE ステートメントを使用して変数値を出力します。

  1. パラメータの受け渡し

パラメータの受け渡しは、Oracle ストアド プロシージャの変数に値を割り当てるもう 1 つの一般的な方法です。パラメーターの受け渡しとは、ストアド プロシージャの入力パラメーターまたは出力パラメーターとして変数を渡すことを指します。ストアド プロシージャの入力パラメータはストアド プロシージャに値を渡すために使用され、出力パラメータはストアド プロシージャから呼び出し側プログラムに値を渡すために使用されます。パラメータ転送の構文は次のとおりです。

PROCEDURE procedure_name(param1 IN datatype1, param2 OUT datatype2)

このうち、param1 は入力パラメータ、param2 は出力パラメータです。 datatype1 と datatype2 は、入力パラメータと出力パラメータのデータ型です (VARCHAR2、NUMBER など)。たとえば、次のストアド プロシージャは、パラメータを使用して変数の割り当てに渡す方法を示しています。

CREATE OR REPLACE PROCEDURE add_numbers (
          x IN NUMBER,
          y IN NUMBER,
          z OUT NUMBER)
IS
BEGIN
          z := x + y;
END;

上記のストアド プロシージャでは、3 つの変数 x、y、z を定義します。ここで、x、y は入力パラメータ、z です。は出力パラメータです。ストアド プロシージャは、x と y の合計を z に代入し、z の値を呼び出し側プログラムに返します。

概要

この記事は、Oracle ストアド プロシージャの変数に値を割り当てる方法に焦点を当てています。 Oracle ストアド プロシージャでは、変数は非常に重要なコンポーネントです。変数にはさまざまなタイプがあり、変数にはさまざまな方法で値を割り当てることができます。変数を上手に使用すると、ストアド プロシージャの作成を強力にサポートできます。

以上がOracle ストアド プロシージャの変数に値を割り当てる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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