2009-06-12 32 views

回答

1

我相信这是你的AR找什么 http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/fcdaa97e-8415-4c3e-8ffd-1ad45b590d57/ (从那里):

我们可以使用脚本组件与参考游标作为参数(S)

添加输出执行Oracle存储过程组件的列。

对于例如:我有这需要)把

我加入2-这样的列的EmpID和EmpName,然后覆盖CreateNewOutputRows(类型REF光标的参数的放作为

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 
一个Oracle包Get_Employees.GetEmployees

在此之前,我们需要设置oracle的命令对象在PreExecute子例程:

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