プライマリ・コンテンツに移動

Oracle® Data Provider for .NET開発者ガイド ODAC 12.2c リリース1 (12.2.0.1) for Microsoft Windows E88311-03 |
| 目次 | 索引

前 | 次 |

# ODP.NETを使用した.NETストアド・プロシージャの実行の概要

Oracle Data Provider for .NETクラスとAPIを使用して、.NETクライアント・アプリケーションから、および.NETストアド・プロシージャとファンクションからOracle Databaseのデータにアクセスできます。

ただし、Oracle Data Provider for .NETを.NETストアド・プロシージャ内で使用する場合はいくつかの制限があります。これらの制限を次の項で説明します。

単純な.NETストアド・プロシージャの例を次に示します。

    using System;
    using Oracle.DataAccess.Client;
    using Oracle.DataAccess.Types;

    public class CLRLibrary1
    {
      // .NET Stored Function returning the DEPTNO of the employee whose
      // EMPNO is 'empno'
      public static uint GetDeptNo(uint empno)
      {
        uint deptno = 0;

        // Create and open a context connection
        OracleConnection conn = new OracleConnection();
        if( OracleConnection.IsAvailable == true )
        {
          conn.ConnectionString = "context connection=true";
        }
        else
        {
          //set connection string for a normal client connection
          conn.ConnectionString = "user id=scott;password=tiger;" +
            "data source=oracle";
        }
        conn.Open();

        // Create and execute a command
        OracleCommand cmd = conn.CreateCommand();
        cmd.CommandText = "SELECT DEPTNO FROM EMP WHERE EMPNO = :1";
        cmd.Parameters.Add(":1",OracleDbType.Int32,empno,
        System.Data.ParameterDirection.Input);
        OracleDataReader rdr = cmd.ExecuteReader();
        if (rdr.Read())
          deptno = (uint)rdr.GetInt32(0);
        rdr.Close();
        cmd.Dispose();
        conn.Close();
        return deptno;
      } // GetDeptNo
    } // CLRLibrary1

関連項目:

- .NETストアド・プロシージャの作成方法の詳細は、Oracle Database Extensions for .NET開発者ガイドfor Microsoft Windowsを参照

- 表5-1