変数に値を割り当てる方法: 1. 値を直接割り当てるには「:=」を使用し、構文は「変数名:=値;」です; 2. 「選択テーブル フィールド」を使用します。 into variable from table" ステートメント; 3. 「即時 SQL ステートメント文字列を変数に実行する」ステートメントを使用します。
このチュートリアルの動作環境: Windows 7 システム、Oracle 11g バージョン、Dell G3 コンピューター。
1. 変数を宣言する 3 つの方法
データ型の宣言方法で区別する方法1:データ型を直接宣言する
形式:変数名データ型(サイズ)V_START_DATE VARCHAR2(19); v_num number;
文字列型に設定する場合、サイズを指定する必要があります。指定しないとエラーが報告されます。
変数は、「begin」キーワードを実行する前に指定する必要があります。
--错误用法 BEGIN v_sql varchar2(100) := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)';
方法 2: %TYPE ステートメントを使用する
形式: 変数名テーブル名.フィールド名 %TYPE意味: 変数のデータ型は、指定されたテーブルの指定されたフィールドのデータ型と一致していますV_ORGSEQ BASE_ORG_INFO.ORGSEQ%TYPE;
--VIRTUAL_CARD表整行数据 V_ROW_VIRTUAL_CARD VIRTUAL_CARD%ROWTYPE;
ストアド プロシージャでは、変数を宣言する場合、キーワード「DECLARE」を使用する必要はありません。
変数では大文字と小文字が区別されません。変数は使用前に宣言する必要があります。
#2. 変数の代入の 3 つの方法
方法 1: 直接代入、":=
使用条件: 変数を宣言する最初の 2 つの方法に適用されます。
V_ORGID := '110';
変数の直後に SQL ステートメントを続けることはできません。SQL は実行されません。方法 3 を参照してください。
--错误用法 V_ORGSEQ := SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO; --正确用法 V_ORGSEQ := 'SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO';
--正确用法 v_sql varchar2(100) := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)'; BEGIN /* 具体业务 */ END;
バリエーション 1: 指定されたテーブルの指定されたフィールドをクエリします
使用条件 :変数の宣言に適用できる最初の 2 つのメソッドが使用できます
--根据医疗机构ID查询对应的父机构的机构序列 SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO WHERE ORGID = (SELECT PARENTORGID FROM BASE_ORG_INFO WHERE ORGID = V_ORGID);
のみ適用可能宣言への変数の 3 番目のメソッド
--将id=5120的VIRTUAL_CARD表数据赋值给变量V_ROW_VIRTUAL_CARD SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T where t.id = 5120;
クエリ結果は 1 つのレコードのみを返すことができます;
Query table フィールドはテーブルのすべてのフィールドである必要があります。
エラー例:
--错误举例一:查询的是所有表记录 SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T; --错误举例二:查询的是该表的多个字段 SELECT t.id,t.name INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T;
方法 3: SQL ステートメント文字列を変数
declare/* 存储过程,不需要声明 */ v_sql varchar2(100); V_ORGSEQ varchar2(100); begin v_sql := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)'; --V_ORGSEQ赋值 execute immediate v_sql INTO V_ORGSEQ; --打印结果 DBMS_OUTPUT.put_line(V_ORGSEQ); END;
一般に、変数には次の 3 つの使用シナリオのみがあります: 代入、論理判断、算術演算;
注:はクエリとして使用できません。 column
--错误调用 select V_ORGSEQ from dual;
--V_ROW_VIRTUAL_CARD赋值 SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T where t.id = 5120; --调用 DBMS_OUTPUT.put_line(V_ROW_VIRTUAL_CARD.ID);
Oracle チュートリアル
」以上がOracle ストアド プロシージャの変数に値を割り当てる方法にはどのようなものがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。