读取 excel 源代码并根据 ssis 中的标题运行 sp

Sub*_*mar 5 sql-server excel ssis etl

我有一个excel工作表Sheet1$

报告1 报告2 报告5 报告6
值1 值1 值1 值1
值2 值2

我在数据库中有几个 SP,这个工作表有 SP 的参数

根据工作表中的标题名称,我们必须传递参数并运行该 sp。

例子:

在此工作表中,我必须运行 report1、report2、report5、report6,其中报告 3 和报告 4 不存在。

我必须相应地使用每列中的参数运行上述内容。(注意:参数必须作为字符串传递) SP 的结果应再次保存在工作表中。

有人可以帮我解决这个问题吗?

提前致谢

Chr*_*the 0

我用的是ADODB。

代码片段(函数 SQL_EXEC...)

Dim B As Boolean
Dim C As ADODB.Command
Dim I As Long
Dim P As ADODB.Parameter
Dim V As Variant

   Set C = New ADODB.Command
   C.ActiveConnection = glob_CONNECT
   C.CommandType = adCmdStoredProc
   C.CommandText = X.SQL_Name
   
   ' bind Inputparameter
   If X.NInParams > 0 Then
      For I = 1 To X.NInParams Step 1
         Set P = C.CreateParameter(X.InParam(I).SQL_Name, _
                                   X.InParam(I).ADODB_Type, _
                                   adParamInput, _
                                   X.InParam(I).SQL_Size, _
                                   X.InParam(I).SQL_Value)
         C.Parameters.Append P
      Next
   End If
   
   ' bind Outputparameter
   If X.NOutParams > 0 Then
      For I = 1 To X.NOutParams Step 1
         Set P = C.CreateParameter(X.OutParam(I).SQL_Name, _
                                   X.OutParam(I).ADODB_Type, _
                                   adParamOutput, _
                                   X.OutParam(I).SQL_Size)
         C.Parameters.Append P
      Next
   End If
   
   ' Execute SP (Errors are possible!)
   On Error GoTo 0
   On Error Resume Next
   C.Execute
   
   ' Error?
   If Err.Number <> 0 Then
      SQL_EXEC = False
      Exit Function
   End If

   ' Fetch Output
   If X.NOutParams > 0 Then
      For I = 1 To X.NOutParams Step 1
         V = VNormExec(C.Parameters(X.OutParam(I).SQL_Name), X.OutParam(I).SQL_Type)
         X.OutParam(I).SQL_Value = V
      Next
   End If
Run Code Online (Sandbox Code Playgroud)