首页 > 解决方案 > 执行动态查询并打印到文件

问题描述

我有一个带有动态查询的脚本。我想执行查询并将其结果输出到文件。我似乎无法弄清楚如何输出“执行”语句的结果。

下面的示例代码。

declare @sql_text varchar(300)

select @sql_text = select 1
exec (@sql_text) > output.txt

提供更多上下文。我的实际脚本将遍历动态查询并输出到不同的文件(动态文件名也是如此)。

标签: sybasesap-ase

解决方案


您通过 -o 参数将输出文件设置为 isql 客户端以执行 SQL。这会将输出从任何 SQL 发送到文件,无论是普通 SQL 还是动态 SQL。

所以把 SQL 放到一个输入文件中然后运行

isql -U 用户 -P 密码 -S -i input_filename -o output.txt

您不能在不启用 xp_cmdshell 的情况下直接从 ASE 本身调用操作系统文件,这是一个潜在的安全问题(因为它允许以运行 Sybase 数据服务器的用户身份运行 O/S 命令),因此在大多数站点中都被禁止.


推荐阅读