2016-07-07 12 views
0

私の問題を調査しましたが、私はOracleの経験が不足しているために苦労していると思います(SQL Serverのバックグラウンド)。.NETアプリケーションへの入力パラメータを持つOracleストアドプロシージャからのデータテーブルの返却

私は、.NETアプリケーションからOracleストアドプロシージャを呼び出して、アプリケーションにデータテーブルを返そうとしています。 「ORA-00900:無効なSQL文」エラーが表示されます。

擬似コードビハインド:

OracleConnection conn = new OracleConnection("..."); 
OracleCommand cmd = new OracleCommand("sproc_name", conn); 
cmd.Connection = conn; 
cmd.Parameters.Add("Year", OracleDbType.Int16).Value = vYear 
cmd.Parameters.Add("Name", OracleDbType.Varchar2).Value = vName; 
cmd.Parameters.Add("ID", OracleDbType.Varchar2).Value = vID; 
conn.Open(); 
DataTable dt = new DataTable(); 
dt.Load(cmd.ExecuteReader()); 

擬似ストアドプロシージャ:

CREATE OR REPLACE 
PROCEDURE sproc_name 
(
    Year IN NUMBER 
, Name IN VARCHAR2 
, ID IN VARCHAR2 
) 
AS 
BEGIN 
SELECT * 
FROM TABLE 
WHERE TABLE.Year = Year AND 
     TABLE.Name = Name AND 
     TABLE.ID = ID 
END sproc_name; 

私は、参照カーソルをよく読んでいると私は運と私の手順を書き換えてみました。私はここでどのように進めるべきですか?

答えて

0

この

using (var conn = new OracleConnection("...")) 

using (var cmd = conn.CreateCommand()) 
{ 

cmd.CommandType = CommandType.StoredProcedure; 
cmd.CommandText = "sproc_name"; 
cmd.BindByName = true; 

// ...

をお試しください
関連する問題