VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。
基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。
<< 前のTips 次のTips >>
C#からOracleのストアドプロシージャを呼び出す方法を紹介します。
今回は引数なしのストアドプロシージャをC#から呼び出してみたいと思います。
使用するテーブルは、Oracleを使用している人であればおなじみの、scott/tigerのEMP表です。
■EMP表
CREATE TABLE SCOTT.EMP
(
EMPNO NUMBER(4,0) NOT NULL,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4,0),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2,0),
CONSTRAINT FK_DEPTNO FOREIGN KEY (DEPTNO) REFERENCES SCOTT.DEPT (DEPTNO),
CONSTRAINT PK_EMP PRIMARY KEY (EMPNO)
)
/
下記に引数なしのストアドプロシージャ(PROCEDURE1)を示します。
(中身については特に気にしないでください。説明上、引数なしのプロシージャを準備したかっただけです。)
■ストアドプロシージャ1
CREATE OR REPLACE PROCEDURE SCOTT.PROCEDURE1
IS
BEGIN
INSERT INTO EMP (EMPNO, ENAME) VALUES ('7777','HIRO');
END;
/
ストアドプロシージャを呼び出す場合は、OracleCommandのコマンドタイプにCommandType.StoredProcedureを指定する必要があります。
OracleCommandのCommandTypeプロパティには、実行するストアドプロシージャ名を指定します。
ストアドプロシージャを実行するにはExecuteNonQueryメソッドを実行します。
using Oracle.DataAccess.Client; private void ODP_TEST1() { try { using (OracleConnection OraConn = new OracleConnection("user id=scott;password=tiger;data source=aicnet01")) { using (OracleCommand Cmd = new OracleCommand()) { //データベース接続を開く OraConn.Open(); Cmd.Connection = OraConn; //コマンドタイプをストアドプロシージャにする Cmd.CommandType = CommandType.StoredProcedure; //実行するストアドプロシージャを指定 Cmd.CommandText = "PROCEDURE1"; //ストアドプロシージャの実行 Cmd.ExecuteNonQuery(); MessageBox.Show( "PROCEDURE1 正常終了", "SUCCESS", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } catch (OracleException OraEx) { // Oracle例外発生時 MessageBox.Show(OraEx.Message, "ORACLE ERROR", MessageBoxButtons.OK, MessageBoxIcon.Stop); } catch (Exception ex) { // 一般例外発生時 MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Stop); } }
<< 前のTips 次のTips >>