【问题标题】:How to Pass Parameters to ORACLE stored procedure in SSIS packages如何将参数传递给 SSIS 包中的 ORACLE 存储过程
【发布时间】:2014-01-20 10:00:08
【问题描述】:

我正在使用执行sql任务调用Oracle存储过程,我想将参数传递给oracle存储过程

查询里面执行sql任务:-

BEGIN 
PKG_METRICS.GET_STUDY_METRIC(@myparameter, 'FIRST_SITE_SELECTED', 'LAST_SITE_SELECTED', 6, null,'SITE');
END;

请让我知道你的 cmets...

【问题讨论】:

    标签: sql-server ssis


    【解决方案1】:

    您应该转到 SQL 任务中的表达式, 然后将表达式添加到 SqlStatementSource 并将这段代码放在对话框窗口中: "BEGIN PKG_METRICS.GET_STUDY_METRIC("+@var_myparameter+", 'FIRST_SITE_SELECTED', 'LAST_SITE_SELECTED', 6, null,'SITE'); END;"

    在此之前你应该添加字符串变量@var_myparameter

    【讨论】:

      【解决方案2】:

      您可以按照上面的建议将 sql 表达式构建为字符串,但如果参数是管道中 ole db 命令的输入,您也可以将参数传递给 Oracle。创建一个 OLE DB 命令块。在组件属性中输入 sql 并放置 ?标记参数应该在哪里。接下来转到输入和输出属性。展开 OLE DB 命令输入并为您需要传递的每个参数添加一个外部列。从零开始从上到下对 MappedColumnId 选项卡进行排序。将它们映射到列映射选项卡上的输入。

      如果您的参数只是 SSIS 中的参数而不是管道中的参数,您可以使用简单的派生列将其添加到管道中。您也可以使用您最喜欢的 oracle 访问 dll 从脚本组件执行 proc。

      没有完美的选择,但有办法做到这一点!

      【讨论】:

        【解决方案3】:

        除了 chrisPfeif518 : 对于 Oracle(在我的情况下),在 OLE DB 命令任务中,我使用了语法:

        {call ... }
        

        你的情况应该是:

        {call PKG_METRICS.GET_STUDY_METRIC(?, ?, ?, ?, ?,?)}
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-06-03
          • 1970-01-01
          • 1970-01-01
          • 2011-10-23
          • 1970-01-01
          • 1970-01-01
          • 2016-04-05
          相关资源
          最近更新 更多