Je crois que c'est ce que vous ar la recherche de http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/fcdaa97e-8415-4c3e-8ffd-1ad45b590d57/ (de là):
Nous pouvons utiliser Script Component pour exécuter des procédures stockées Oracle avec le curseur ref comme paramètre (s)
Ajouter la sortie colonnes au composant.
Par exemple: j'ai eu Get_Employees.GetEmployees de paquets oracle qui prend un paramètre put mettre le type ref curseur
I ajouté 2 telles colonnes EmpID et EmpName puis override CreateNewOutputRows() comme
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
Avant que nous devons définir l'objet de commande oracle sous-programme PreExecute comme:
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
que voulez-vous dire par « un appelant qui est en T-SQL »? Voulez-vous dire un travail ou un processus SQL Server appelant Oracle via un serveur lié? – RBarryYoung
Appelé à partir d'une procédure stockée dans SqlServer –