前の記事では、単純なストアド・プロシージャ・コール、デバッグ、および削除を作成するために導入されています。この記事では主に、ストアドプロシージャの使用を議論判断のサイクルを選択します。
定義と割り当てストアドプロシージャ変数
ストアドプロシージャでは、我々はあなたが動作するようにいくつかの変数を定義することができ、パラメータに加えて使用することができます。
最初の割り当てモード:: =
1.変数または書き込みバックで定義されているが、以前の開始、キーワードです。
変数のパラメータを定義します。2.長さを指定する必要は区別されます。
3.パラメータが割り当てから始まる定義されてもよい一旦オラクル割り当て操作ではなく=:=。
割り当ての種類4.パラメータは再び許可されていません。
5.次のパラメータnum個ありますが、ない場所次のコードの参照はありませんが、コンパイラは時間を思い出させるだろうが「警告でコンパイルされています」。
6.提出書かなければならない、または挿入操作が成功した完了することはできませんコミット。
単一引用符を使用するには、両側の変数代入の文字型は、数値ではありません7。
1 作成 または 交換 手順 Test3は(NUM 番号)AS 2年齢整数 ; - 整数の長さを指定する必要はありません 3。名VARCHAR2(20である); - 長さを指定するVARCHAR2ニーズ 4。セックス整数; 5。 始める 6。 年齢:= 0 ; - あります変数代入は、上記に定義されていないが、=と:= 7。 名:= 「ジョン・ドウ」 ; - アポストロフィで両側に割り当てられる文字データの 8。 セックス:=。1 ; 9。 - NUM:= 1;パラメータタイプはここで留意すべきである再割り当てには使用できません。 10の INSERT INTO T_USERの値(SYS_GUID()、名前、年齢、性別、' 12541554040 ' 、SYSDATE); 11。 コミット; 12のIS DBMS_OUTPUT.PUT_LINE(' OK ' ); 13は 終了。
第二割当モード:SELECT INTO
1. SELECT INTOは、1つまたは複数の変数に割り当てることができます。
変数に選択した変数の数が同じ注文し、変数を割り当てて、特定する必要がある場合に割り当てられています。
3. DBMS_OUTPUT.PUT_LINE類似するSystem.out.printlnのJava()。
1 作成 または 交換 手順 TEST4 AS 2年齢整数; 3。セックス整数; 4。 開始 5。 SELECT年齢INTO年齢から T_USER 名= ' ジョン・ドウ' ; - 単一可変割り当て6 SELECT年齢、性別INTO年齢、性別から T_USER WHERE名= 「ジョン・ドウ」 ; - 変数割り当ての複数7 コミット; 8 DBMS_OUTPUT.PUT_LINE(' OK ' ); 9 DBMS_OUTPUT.PUT_LINE(' 年龄:' ||年齢|| ' 性别:' || 性別)。 10 端部、
Selectステートメントのストアドプロシージャ
選択した場合:
(キーワード:もし、ELSIF、他に、そして、終了する場合)注:
1. Oracleの他に「他の場合は、」ELSIF文言は、Javaと異なる場合
その後、一緒に2 ELSIFの背後にある場合や、Javaの異なります
このキーワード3.オラクルは、一般的にペアで必要とされているので、エンド場合エンドがなければなりません
1 作成 または 交換 手順 TEST5(NUM で 数)として 2が 始まる 3を 場合 NUM > 0 、次いで 4 DBMS_OUTPUT.PUT_LINE(' > 0 NUM ' )。 5 ELSIF NUM < 0 、次いで 6 DBMS_OUTPUT.PUT_LINE(' NUM <0 ' )。 7 他 8 DBMS_OUTPUT.PUT_LINE(' NUM = 0 ' ); 9 端 場合、 10 エンド ;
(場合に類似)を選択した場合
注意:
最後に、最後はケースを終了するには1.ケース
2.それぞれ後でときに取る必要があります
1 作成 または 交換 手順 TEST6(NUM で 数)として 2が 始まる 3 ケースNUM 4 とき 1 、次いで 5 DBMS_OUTPUT.PUT_LINE(' NUM = 1 ' ); 6 ときに 2 次に 7 DBMS_OUTPUT.PUT_LINE(' NUM = 2 ' )。 8 ほか 9 DBMS_OUTPUT.PUT_LINE(' NUM = 3 ' )。 10 端部 ケース; 11 エンド ;
ストアドプロシージャのループ
実質的に円形のループサイクルストアドプロシージャ
キーワード:ループ、終了、エンドループ注:
1.ループサイクルは、ループエンドループエンドを開始します。
2.このコード手段サイクルの> 10出力端まで、ゼロに等しいです。
3.終了時に平均する場合、終了にどのような状況の下で。
1 作成 または 交換 手順 TEST7のように 2 の整数。 図3は、 開始 4 A:= 0 ; 5 ループ 6 DBMS_OUTPUT.PUT_LINE(' NUM = ' || )。 7 A:= A + 1 。 8 出口 場合 9 、A > 10 。 10 エンドループ。 11 端部、
ループストアドプロシージャ一方
キーワード:しばらく、ループ、エンドループ
もし<10 Aの出力値の周期1.このコード手段。
2.しばらくは後条件とループのキーワードを選択します。
3.最後に、端部でループを終了します。
1 作成 または 交換 手順 TEST8のように 2 の整数。 図3は、 開始 4 A:= 0 ; 5 ながら< 10 ループ 6 DBMS_OUTPUT.PUT_LINE(' NUM = ' || )。 7 A:= A + 1 。 8 エンドループ。 9 端 ;
ループのためのストアドプロシージャ
キーワード:、中、ループ、エンドループについて
1.このコード手段をその出力に分離t_userテーブル名の列とリサイクルTNAMEデータ。
2.このコードはできない一瞬理解していない、カーソルのカーソルを使用しています。
ループ3. ANAME同様のJavaは私に私をint型。
4.名前TNAMEから値を取得したい場合、aname.nameの仕方を得る必要があります。
作成 または 交換する 手順の TEST9をとして カーソル TNAMEがある 選択名からt_user。 始める ために ANAME にTNAME LOOP DBMS_OUTPUT.PUT_LINE(aname.name)。 終了LOOPを。 エンド ;
継続的に更新!!