Sybase中使用xp_cmdShell命令
有两个前提:
1、XP_Server必须是开启的
2、sp_configure 'xp_cmdshell context',0
在使用过程中碰到如下的几个问题
环境:Suse +Sybase15.0
a)测试:看环境是否支持xp_cmdShell命令
在SQL 中输入命令 xp_cmdshell 'date'
如果成功会有如下结果
xp_cmdshell
'Tue Mar 31 22:48:35 CST 2020\x0a\x00'
如果失败会提示说:XP Server must be up for ESP to execute
通过 showserver 也可以看到 XPServer是否启动 ,一般情况下 XPServer是在sql中执行 xp_cmdshell 后才会启动的
b)开启XP Server
如Sybase ASE的服务名为 TESTSERVER,这里大小写没关系 ,但是XP Server的名称必须是大写的
开启XP Server的前提
1、服务名必须是 TESTSERVER_XP ,且全大写
2、interface里面必须有 TESTSERVER_XP对应的配置 ,如下
TESTSERVER_XP
master tcp ether 10.10.10.10 5003
query tcp ether 10.10.10.10 5003
检查:
1、sp_helpserver 或者 select * from master..sysservers 检查当前的服务 看是否有 TESTSERVER_XP 的服务名
2、如果没有则添加添加XPServer的服务名
sp_addserver 'TESTSERVER_XP' sp_dropserver 'TESTSERVER_XP'
或者
sp_configure 'allow updates', 1
update master..sysservers set srvname='TESTSERVER_XP' where srvid=0
3、重启ASE服务
isql -Usa -P
> shutdown
>go
./startserver -f RUN_TESTSERVER
参考:http://bbs.chinaunix.net/thread-24055-1-1.html