【发布时间】:2019-08-20 09:41:26
【问题描述】:
我想执行一个需要参数作为 OLE DB 源的存储过程,以便稍后从 SSIS 将其导出为 Excel 文件。
SP 生成一组我想导出到 Excel 文件的数据
这是我为 SP 运行的代码。 (这样运行会产生我想要的结果)
DECLARE @RC int
DECLARE @startweek varchar(20)
DECLARE @endweek varchar(20)
DECLARE @payroll varchar(30)
DECLARE @job varchar(25)
DECLARE @job_to varchar(25)
DECLARE @manager varchar(30)
DECLARE @office varchar(100)
DECLARE @pu varchar(6)
DECLARE @pu_to varchar(6)
DECLARE @task varchar(25)
DECLARE @task_to varchar(25)
DECLARE @Prj_pu varchar(6)
DECLARE @Prj_pu_to varchar(6)
SET @endweek = dateadd(d, -((datepart(weekday, getdate()) + 1 + @@DATEFIRST) % 7), getdate());
SET @startweek = DATEADD(WEEK, -25, @endweek)
EXECUTE @RC = [dbo].[TIME_lynx_extract]
@startweek
,@endweek
,@payroll
,@job
,@job_to
,@manager
,@office
,@pu
,@pu_to
,@task
,@task_to
,@Prj_pu
,@Prj_pu_to
GO
我不确定运行的格式是否正确。
这是设置的图片:
这些是黄色背景部分的错误:
HRESULT 异常:0xC020204A
数据流任务 [OLE DB 源 [37]] 出错:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80004005。
一个 OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80004005 描述:“无法确定元数据,因为过程 'TIME_lynx_extract' 中的语句 'EXECUTE SP_EXECUTESQL @STR_SQL' 包含动态 SQL。考虑使用 WITH RESULT SETS 子句显式描述结果集。”。
数据流任务 [OLE DB 源 [37]] 出错:无法从数据源检索列信息。确保数据库中的目标表可用。
另外,如果我尝试在 OLE DB 源上执行基本查询,它可以工作,所以与数据库的连接似乎没问题。 现在的主要问题是如何执行这个 SP。
【问题讨论】:
-
IN 关于问题,打印屏幕底部有错误,您的问题中没有包含这些错误。我们真的需要这些。
-
那个也告诉你问题...我会强调部分:""无法确定元数据,因为过程'TIME_lynx_extract'中的语句'EXECUTE SP_EXECUTESQL @STR_SQL'包含动态 SQL。 考虑使用 WITH RESULT SETS 子句明确描述结果集。"。"
-
检查下面的答案可能会有所帮助stackoverflow.com/questions/48083262/…
-
我建议这会对你有所帮助:stackoverflow.com/questions/7610491/…
标签: sql sql-server stored-procedures ssis etl