【问题标题】:How to execute SQL Statement to make it as source and Load into Destination table in SSIS如何执行 SQL 语句以使其作为源并加载到 SSIS 中的目标表中
【发布时间】:2021-02-17 16:02:39
【问题描述】:

我有一个表 dbo.Test,其列 (ID,Query_Column)

ID   Query_Column

1    SELECT CustomerKey, FirstName, LastName, MaritalStatus, Gender FROM CUSTOMER_DETAILS

在查询列中,我有一个包含一些数据的选择语句。

现在在我的 SSIS 包中,我想将其作为源列并动态加载到目标表中。

**Source**             **Destination** 

CustomerKey       CustomerKey
FirstName         FirstName
LastName          LastName
MaritalStatus     MaritalStatus
Gender            Gender 

现在在我的 SSIS 包中,我想将其作为源列并动态加载到目标表中。

谁能给我建议。

【问题讨论】:

  • 我不太了解 SSIS,但据我所知:我对此表示怀疑。你总是可以使用SELECT ... INTO ... FROM ...
  • 我正在寻找 SSIS 。在 SQL 中我们可以做很多方式@HoneyBadger 感谢您的回复

标签: sql ssis


【解决方案1】:

在您的执行 SQL 任务中,使用如下存储过程:

IF OBJECT_ID('dbo.Testtable', 'U') IS NOT NULL 
  DROP TABLE dbo.Testtable; 

DECLARE @sqlCommand varchar(1000)
DECLARE @columnList varchar(100)
DECLARE @table varchar(75)
DECLARE @sqldisplay varchar(1000)

SET @columnList = (SELECT SUBSTRING(Query_Column, CHARINDEX('SELECT', Query_Column) +6
, CHARINDEX('FROM',Query_Column) - CHARINDEX('SELECT', Query_Column) - Len('FROM')-2)
FROM dbo.Mytab)
SET @table = (SELECT SUBSTRING(Query_Column, CHARINDEX('FROM',Query_Column) + LEN('FROM'), LEN(Query_Column))
FROM dbo.Mytab)
SET @sqlCommand = 'SELECT' +@columnlist + 'INTO dbo.Testtable FROM' + @table
SET @sqldisplay = 'SELECT * FROM dbo.Testtable'
EXEC (@sqlCommand)
EXEC (@sqldisplay)

【讨论】:

  • 我已经写好了并签入了 SSIS .. 我也会检查你的查询
  • @mohan111 等待您的反馈
【解决方案2】:

我建议您使用“执行 SQL 任务”而不是“数据流任务”。 在此组件中,您可以使用 SQL 查询。

请在下面找到一个查询示例来做这些事情:

declare @query varchar(1000);

select  @query =  [Query_Column] FROM Test where ID = 1 ;

set @query = concat(@query,' into temp_table');

exec(@query)

之后你就可以了:

  • 从 temp_table 创建数据流 或
  • 丰富上面的 sql 查询以从 temp_table 提供预期的表

【讨论】:

  • 临时表是否可以在 OLEDB 源中工作?
猜你喜欢
  • 2014-03-28
  • 2023-03-27
  • 1970-01-01
  • 2016-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多