2009-08-27 8 views
0

私は、すべての従業員の詳細を一時表TempEmployeeDetails表に保存するOracle関数GetEmployeeDetailsを持っています。C#からoracle関数を呼び出す

テンポラリテーブルのselectクエリのあとに関数を呼び出す必要があります。関数呼び出しは成功しますが、selectクエリは次のエラーをスローします。

"BEGIN:出力:= MyPackage.GetEmployeeDetails(" + ":EmployeeId、"); SELECT * FROM TempEmployeeDetails; END;」上記のクエリは私に、このエラー与えている

ORA-06550:行1、列98:

PLS-00428:INTO句このSELECT文で期待されている

答えて

1

私はあなたがでおそらくコードので、OracleClientのを使用している場合は、関数呼び出しからのクエリを分離すべきだと思う:tempEmployeeDetailからデータを取得するために、今

OracleCommand cmd = new OracleCommand("GetEmployeeDetails", conn); 
cmd.CommandType = CommandType.StoredProcedure; 


par = new OracleParameter("EmployeeId", OracleType.int32); 
par.Value = EmployeeId; 
par.Direction = ParameterDirection.Input; 
cmd.Parameters.Add(par); 

cmd.ExecuteNonQuery(); 

次のような別のクエリを作成します。

OracleCommand cmd = new OracleCommand("SELECT * FROM TempEmployeeDetails", conn); 
OracleDataReader dr = cmd.ExecuteReader(); 
while (dr.Read()) 
{ 
    //do what you want... 
}