oraceストレージ・プロシージャの概要小DEMO
2027 ワード
Oracleのストレージ・プロシージャやトリガなどを学び始めたばかりで、ブログ・フォーラムでまとめられた知識点もいくつか見ました!
いくつかの比較的に良い文章の断片を取って、後で勉強して強固にするために持ってきました!
大規模なデータベース・システムでは、ストレージ・プロシージャとトリガの2つの重要な機能があります.データベース・システムでは、ストレージ・プロシージャとトリガのどちらでも、SQL文と制御プロセス文のセットによって実行されます.対照的に、データベース・システムのトリガもストレージ・プロシージャです.ストレージ・プロシージャは、データベース内の演算時に各種の実行方式を自動的に生成するため、その実行時の実行速度を大幅に向上させる.Oracle、SQL Serverなどの大規模なデータベース・システムでは、ユーザーがストレージ・プロシージャをカスタマイズする機能だけでなく、ツールとして呼び出すことができる多くのシステムに独自のストレージ・プロシージャが用意されています.
ストアド・プロシージャ(Stored Procedure)とは、コンパイルされてデータベース・システムに格納される特定のデータベース機能を完了するためのSQL文セットのことです.使用時に、ユーザーは定義されたストレージ・プロシージャの名前を指定し、対応するストレージ・プロシージャ・パラメータを指定して呼び出し、実行することで、1つまたは複数のデータベース・オペレーションを完了します.
基本的な使い方:
1.基本構造CREATE OR REPLACE PROSCEDUREストレージプロセス名(パラメータ1 IN NUMBER、パラメータ2 IN NUMBER)AS変数1 INTEGER:=0;変数2 DATE;BEGIN
ENDストアド・プロシージャ名2.SELECT INTO STATEMENTはselectクエリの結果を変数に格納し、同時に複数の列に複数の変数を格納することができ、1つのレコードが必要である.そうしないと、異常を放出する(NO_DATA_FOUNDを放出する記録がない場合)例:BEGIN SELECT col 1、col 2 into変数1、変数2 FROM typestruct where xxx; EXCEPTION WHEN NO_DATA_FOUND THEN xxxx; END; ... 3.IF判定IF V_TEST=1 THEN BEGIN do something END; END IF; 4.whileサイクルWHILE V_TEST=1 LOOP BEGIN XXXX END; END LOOP; 5.変数付与V_TEST := 123; 6.for inでcursorを使う... IS CURSOR cur IS SELECT * FROM xxx; BEGIN FOR cur_result in cur LOOP BEGIN V_SUM :=cur_result.カラム名1+cur_result.列名2 END; END LOOP; END; 7.パラメータ付きcursor CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID; OPEN C_USER(変数値); LOOP FETCH C_USER INTO V_NAME; EXIT FETCH C_USER%NOTFOUND; do something END LOOP; CLOSE C_USER; 8.pl/sql developer debugでデータベースに接続した後、Test WINDOWがウィンドウにSPを呼び出すコードを入力することを確立し、F 9はdebugを開始し、CTRL+N単一ステップデバッグ
いくつかの比較的に良い文章の断片を取って、後で勉強して強固にするために持ってきました!
大規模なデータベース・システムでは、ストレージ・プロシージャとトリガの2つの重要な機能があります.データベース・システムでは、ストレージ・プロシージャとトリガのどちらでも、SQL文と制御プロセス文のセットによって実行されます.対照的に、データベース・システムのトリガもストレージ・プロシージャです.ストレージ・プロシージャは、データベース内の演算時に各種の実行方式を自動的に生成するため、その実行時の実行速度を大幅に向上させる.Oracle、SQL Serverなどの大規模なデータベース・システムでは、ユーザーがストレージ・プロシージャをカスタマイズする機能だけでなく、ツールとして呼び出すことができる多くのシステムに独自のストレージ・プロシージャが用意されています.
ストアド・プロシージャ(Stored Procedure)とは、コンパイルされてデータベース・システムに格納される特定のデータベース機能を完了するためのSQL文セットのことです.使用時に、ユーザーは定義されたストレージ・プロシージャの名前を指定し、対応するストレージ・プロシージャ・パラメータを指定して呼び出し、実行することで、1つまたは複数のデータベース・オペレーションを完了します.
基本的な使い方:
1.基本構造CREATE OR REPLACE PROSCEDUREストレージプロセス名(パラメータ1 IN NUMBER、パラメータ2 IN NUMBER)AS変数1 INTEGER:=0;変数2 DATE;BEGIN
ENDストアド・プロシージャ名2.SELECT INTO STATEMENTはselectクエリの結果を変数に格納し、同時に複数の列に複数の変数を格納することができ、1つのレコードが必要である.そうしないと、異常を放出する(NO_DATA_FOUNDを放出する記録がない場合)例:BEGIN SELECT col 1、col 2 into変数1、変数2 FROM typestruct where xxx; EXCEPTION WHEN NO_DATA_FOUND THEN xxxx; END; ... 3.IF判定IF V_TEST=1 THEN BEGIN do something END; END IF; 4.whileサイクルWHILE V_TEST=1 LOOP BEGIN XXXX END; END LOOP; 5.変数付与V_TEST := 123; 6.for inでcursorを使う... IS CURSOR cur IS SELECT * FROM xxx; BEGIN FOR cur_result in cur LOOP BEGIN V_SUM :=cur_result.カラム名1+cur_result.列名2 END; END LOOP; END; 7.パラメータ付きcursor CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID; OPEN C_USER(変数値); LOOP FETCH C_USER INTO V_NAME; EXIT FETCH C_USER%NOTFOUND; do something END LOOP; CLOSE C_USER; 8.pl/sql developer debugでデータベースに接続した後、Test WINDOWがウィンドウにSPを呼び出すコードを入力することを確立し、F 9はdebugを開始し、CTRL+N単一ステップデバッグ
createorreplaceprocedure CountSum(Ver in char)
as
cnt number;
begin
select count(*) into cnt from T_BANKNOTE where version=Ver;
DBMS_OUTPUT.PUT_LINE(' 2 :'||cnt);
end CountSum;