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