【问题标题】:Use of xp_cmdshell in SQL Server在 SQL Server 中使用 xp_cmdshell
【发布时间】:2016-05-03 09:29:57
【问题描述】:

我正在尝试从xp_cmdshell 执行一个 perl 脚本。

perl 脚本的输出是一个 csv 文件,但是当我运行时

EXEC master..xp_cmdshell N'perl G:\script\perl.pl';

我找不到创建的 csv 文件,虽然 xp_cmdshell 命令似乎运行良好,但输出是必须创建的文件的名称。

我正在使用xp_cmdshell 创建一个作业步骤来执行 perl 脚本。

任何帮助将不胜感激。

【问题讨论】:

    标签: sql-server xp-cmdshell


    【解决方案1】:

    由于您是通过 SQL 代理作业运行它,因此通过 sp_configure (ref1 | ref2) 禁用 xp_cmdshell 并改用 CmdExec job step 会更安全。

    在配置作业步骤时,请务必转到高级页面并启用将作业步骤记录到表中。

    这将使您能够更好地解决您在使用 perl 作业时遇到的一般问题,因为该问题可能与数据库引擎上下文之外的某些事情有关。

    【讨论】:

    • tnx 回复,但我无法确定文件的保存位置。 Job 'test' : Step 1, 'esecuzione' : Began Executing 2016-05-03 15:59:41 output 03_05_2016_155942_output.csv (null) (2 rows(s) affected)
    • 作业输出显示什么?返回作业,编辑步骤,进入高级页面,然后单击“查看”按钮。这应该显示步骤输出。如果那里没有显示,您可能需要编辑您的 perl 脚本,以防它在静态路径上创建输出。
    • 作业输出显示了我在上一条评论中所写的内容。顺便说一句,正如你所建议的那样,我解决了向 perl 脚本添加静态路径的方法。许多 tnx @john
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多