n個のプロセス
セットアップ手順は、(に)入力パラメータを指定することができるいずれかの特定の操作を実行するためのプロセスは、また、プロセス入力パラメータを用いて、出力パラメータ(OUT)を指定することができ、データは、実行部へ渡すことができ、出力を用いてパラメータは、sqlplusを設立手続きの手順のコマンドを作成することができ、アプリケーション実行部のデータ環境に渡すことができます。
例としては、次のとおりです:
①プロセスを書いてご検討ください、あなたは従業員の名前を入力することができ、新しい賃金は、あなたは従業員の賃金を変更することができます
②二つの方法でプロセスを呼び出す方法:
EXECプロシージャ名(パラメータ値...)
呼び出しプロシージャ名(パラメータ値...)
Nは、さらにプロセスを説明します
Oracleプロセスパラメータは次のように基本的な構文は、入力または出力パラメータを指定するパラメータです。
|
注意:変数が書き込まれていない場合、デフォルトで入力されます
可変サイズの種類を指定しないでください、
特記事項:私たちは、プロセスを書くとき、あなたが特定のエラーを表示するには、showエラーを入力することができます
SQL>プロシージャPRO5(VARCHAR2でin_ename、数in_newsal)を作成または交換されます
2開始
3更新EMPセットSAL = in_newsalここENAME = in_ename。
4 END;
5 /
手順作成
SQL> execがPRO5( 'SMITH'、100);
PL / SQLプロシージャが正常に完了しました
Javaプログラムでプロシージャを呼び出す方法
需要説明:Javaの呼び出しを使用するプロセスだけで書かれました
パッケージ com.lsz.test。
インポート java.sqlの。*;
パブリック クラス試験手順{
パブリック 静的 ボイドメイン(文字列[]引数){
接続CT = nullを。
CallableStatementのCS = nullを。
してみてください {
クラス。forName( "oracle.jdbc.driver.OracleDriverと");
CT = DriverManagerの。getConnection( "JDBC:オラクル:薄い:@ 127.0.0.1:1521:ORCL"、 "スコット"、 "虎");
CS = ct.prepareCall( "{コールPRO5(、)?}")。
cs.setString(1、 "SMITH")。
cs.setFloat(2,456.5f)。
cs.execute();
} キャッチ(例外e){
e.printStackTrace();
} 最後に {
してみてください {
} キャッチ(例外E2){
}
}
}
}
SQLHelperクラスのアップグレードの場合は、ストアドプロシージャメソッドの呼び出しを追加することができます
パブリック 静的 ボイド executeProcedure(文字列のSQL文字列[]パラメータ){
してみてください {
CT = DriverManagerの。getConnection(URL、ユーザ名、パスワード);
CS = CT .prepareCall(SQL)。
もし(パラメータ!= nullの &&! ""。(パラメータ)に等しいです){
以下のために(int型 i = 0; iは<parameters.length; iは++){
CS .setString(I + 1、パラメータ[I])。
}
}
CSの .execute()。
} キャッチ(例外e){
e.printStackTrace();
スロー 新しいのRuntimeExceptionを(e.getMessage());
} 最後に {
クローズ(RS、CS、CT)。
}
}
小さな教室演習:IDが存在しない場合の手順、許容可能なIDと給与を書き込み、給与更新は、必要が例外を捕捉し、そしてプロンプトに!あなたは、コンソールおよびJavaプログラムを呼び出すために必要とされています
で作成したりプロシージャPRO1(v_empno番号、v_sal番号)を置き換えます
ベギン
EMPセットSAL = v_sal EMPNO = v_empnoは更新します;
例外
その後、NO_DATA_FOUNDとき
DBMS_OUTPUT.PUT_LINE(「あなたが入力した番号が有効ではありません!」);
終わり;
NO_DATA_FOUND SELECT文で使用されているため、上記のコードは、例外ではありません。