微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

来自“xp_cmdshell”的输出类型 结果集

如何解决来自“xp_cmdshell”的输出类型 结果集

sql Docs (xp_cmdshell (Transact-SQL) - Result Sets) 中,它提到 xp_cmdshell 应该输出nvarchar(255)

结果集

执行以下 xp_cmdshell 语句返回当前目录的目录列表。

EXEC xp_cmdshell 'dir *.exe';  
GO  

行在 nvarchar(255) 列中返回。如果使用 no_output 选项,将只返回以下内容

The command(s) completed successfully.  

但是,当使用 xp_cmdshell(在 sql Server 2019 上)时,它似乎将数据作为 varchar 返回。例如,下面的脚本有一个 unicode 字符(拉丁文大写 O)被插入到列 nvarchar 的临时表中,并直接从 xp_cmdshell 返回:

Create Table #Temp ([nvarchar] NVARCHAR(100))
Insert into #Temp Values (N'Ȭ')
Select * from #Temp

输出 'Ȭ'

exec xp_cmdshell N'echo Ȭ'

输出'?'

我希望 xp_cmdshell 能够理想地处理 unicode 字符,但不明白为什么这与文档不同。我确实检查过,正常运行时命令提示符能够显示这个字符

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?