【发布时间】:2015-04-12 21:42:23
【问题描述】:
我需要通过 openrowset 从 MS SQL Server 访问 Teradata 数据库。但是我的脚本有 8000 多个字符(实际上几乎是两倍)。这是脚本示例:
select * from openrowset('MSDASQL','DWH'; 'login'; 'pass',
'select * FROM DATABASE.TABLE')
我试图通过将脚本分成两部分来克服这个限制,然后使用 EXEC 命令:
DECLARE
@strSQL1 varchar(8000),
@strSQL2 varchar(8000)
SELECT
@strSQL1 =
'select * from openrowset(''MSDASQL'',''DWH''; ''login''; ''pass'', ',
@strSQL2 =
'''select * FROM DATABASE.TABLE'')'
EXEC (@strSQL1 + @strSQL2)
但这不起作用,因为openrowset语句中的SQL命令仍然超过8000个字符。
我通常会在 Teradata 数据库上创建视图或存储过程,然后启动它,但我没有权限这样做。
有人知道怎么做吗?我几乎尝试了所有方法。
【问题讨论】:
-
将逻辑拆分为 2 个
Execs,然后在最后合并结果
标签: sql sql-server mdx teradata