| Oracle® Database Extensions for .NET開発者ガイド ODAC 12.2c リリース1 (12.2.0.1) for Microsoft Windows E88314-01 |
|
![]() 前 |
![]() 次 |
これらの項では、.NETストアド・ファンクションの開発およびデプロイ方法を説明します。
関連項目:
これらのコンポーネントの詳細は、Oracle Developer Tools for Visual Studioヘルプを参照してください
このデモでは、Oracle Developer Tools for Visual Studioのみを使用しますが、一部のプロセスは他のOracleツールを使用して実行できます。また、このデモではOracle Developer Tools for Visual Studioの次のコンポーネントを参照します。
Oracleエクスプローラ
Oracle Project
Oracle Deployment Wizard for .NET
このデモでは、GetDeptNoという.NETストアド・ファンクションを開発し、PL/SQLラッパーGETDEPTNOとともにデプロイします。GetDeptNoファンクションは、従業員番号(EMPNO)を受け入れて問合せを実行し、従業員の部門番号(DEPTNO)を戻します。
メソッドおよびセキュリティ詳細の指定ウィンドウが表示されます。
デプロイ対象となるプロジェクト全体を選択するか、展開して特定のファンクションをデプロイするように選択できます。このプロジェクトにはファンクションが1つしかないため、項目を1つ選択するとプロジェクト全体が選択されます。複数のファンクションまたはプロシージャがある場合は、デプロイする項目を個別に選択できます。
デプロイ対象として他のスキーマを選択する場合は、このウィンドウで選択できます。必要なスキーマがリストに表示されない場合は、別のフィルタを適用する必要があります。このプロセスの詳細は、Oracle Developer Tools for Visual Studioヘルプを参照してください。
ドロップダウン・リストを使用してセキュリティ・レベルを設定できます。設定可能なレベルは次のとおりです。
「パラメータ・タイプ・マッピング...」を選択した場合は、パラメータ・タイプ・マッピング・ウィンドウが表示され、ドロップダウン・リストを使用してデータ型を変更できます。
このデモでは、.NETデータ型System.Int32からOracleのBINARY_INTEGER型へのデフォルト・マッピングを受け入れます。
「OK」をクリックしてメソッドおよびセキュリティ詳細の指定ウィンドウに戻ります。
関連項目:
データ型マッピングの表は、「データ型変換」を参照してください
Oracle Deployment Wizard for .NETのサマリー・ウィンドウが表示され、指定した内容がすべて表示されます。このウィンドウで「戻る」を選択すると任意の値を変更できます。
このデモを完了するには、次を行います。
この時点で、GetDeptNo()ファンクションがOracleデータベースにデプロイされ、PL/SQLラッパー・ファンクションをコールしてテストする準備が完了したことになります。
このデモでは、ファンクションをコールするためにデフォルト・ユーザーscottとして接続する必要があります。
ファンクションを次のツールからコールしてテストします。
Oracle Developer Tools for Visual Studioでファンクションを検索してコールする手順は、次のとおりです。
次のコード例に、.NETファンクションのPL/SQLラッパーの起動方法を示します。
using System;
using System.Data;
using Oracle.DataAccess.Client;
namespace ODPNETClientApp
{
public class Class1
{
public static void Main()
{
int empno = 7934;
int deptno = 0;
try
{
// Open a connection to the database
OracleConnection con = new OracleConnection(
"User Id=scott; Password=tiger; Data Source=inst1");
con.Open();
// Create and execute the command
OracleCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "GETDEPTNO";
// Set parameters
OracleParameter retParam = cmd.Parameters.Add(":DEPTNO",
OracleDbType.Int32, System.Data.ParameterDirection.ReturnValue);
cmd.Parameters.Add(":EMPNO", OracleDbType.Int32, empno,
System.Data.ParameterDirection.Input);
cmd.ExecuteNonQuery();
deptno = (int)retParam.Value;
Console.WriteLine("\nEmployee# {0} working in department# {1}\n",
empno, deptno);
cmd.Dispose();
con.Close();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
} // Class1
} // ODPNETClientApp namespace