2009-06-12 11 views
1

Oracle Ref CursorをSqlServer T-SQLにある呼び出し元に戻すことはできますか。通常の.Netプログラムを扱うときは、このナレッジベースの記事があります。http://support.microsoft.com/kb/322160Oracle Ref CursorをSqlServer T-SQL呼び出し元に戻す

T-SQLでも同じことが可能ですか?私はこれを信じる

+0

あなたは、「T-SQLである、発信者」とはどういう意味ですか? Linked Serverを介してOracleにコールするSQL Serverのジョブまたはプロセスを意味しますか? – RBarryYoung

+0

SqlServerのストアドプロシージャから呼び出されます。 –

答えて

1

は、あなたが探してARものです http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/fcdaa97e-8415-4c3e-8ffd-1ad45b590d57/ (そこから):

私たちは、スクリプトコンポーネントは、パラメータ(複数可)

出力を追加としてREFカーソルを使用してOracleストアドプロシージャを実行するために使用することができます

列をコンポーネントに追加します。例えばのために

:私は

Public Overrides Sub CreateNewOutputRows() 

Try 

Dim dr As OracleDataReader = oracleCmd.ExecuteReader() 

While dr.Read 

Output0Buffer.AddRow() 

Output0Buffer.EmpID = CDec(dr(0).ToString) 

Output0Buffer.EmpName = dr(1).ToString 

End While 

Catch ex As Exception 

Me.ComponentMetaData.FireError(-1, "InitExtract", ex.Message, String.Empty, 0, True) 

End Try 

Output0Buffer.SetEndOfRowset() 

End Sub 
として)私は2ような列のEmpIDとEMPNAMEを添加し、次いでCreateNewOutputRowsを(上書きREF CURSOR型

のプット入れパラメータを取りOracleパッケージのGet_Employees.GetEmployeesを持っていました以前、我々はPreExecuteサブルーチンでOracleコマンドオブジェクトを設定する必要があると

として:

Dim plsql As String = "BEGIN Get_Employees.GetEmployees(:curEmployeesbyID);END;" 

oracleCmd = New OracleCommand(plsql, oracleConn) 

With oracleCmd 

.CommandType = CommandType.Text 

.Parameters.Add(":curEmployeesbyID", OracleType.Cursor).Direction = ParameterDirection.Output 

End With 
関連する問題