免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5177 | 回复: 5
打印 上一主题 下一主题

sybase中isql调用失败 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-06-04 17:12 |只看该作者 |倒序浏览
一,通过设置配置文件来导入,发现结果为空。
isql -Uuser  -Ppassword  -w3000  -s"|"  -i  /tmp/sql_file  -o  /tmp/out_file

(1)文件/tmp/sql_file 的内容如下
use server
go
select   *  from  table
go
exit ---------- 加了和不加,都测试过,都不行。

(2)文件/tmp/out_file为空文件  -rw-r--r--   1  test      test          0 Jun  3 16:27  /tmp/out_file


二,但是如果用这样的方式就可以
isql  -Uuser  -Ppassword  -w3000  -s"|"  -o  /tmp/out_file<<EOF
use server
go
select   *  from  table
go
exit
EOF


三,在isql命令中有参数S为指定数据库,但是isql  -Uuser  -Ppassword  -Sserver 就失败。报错数据库找不到,但是use server就可以。报错如下。
CT-LIBRARY error: ct_connect(): directory service layer: internal directory control layer error: Requested server name not found.


论坛徽章:
0
2 [报告]
发表于 2013-06-04 18:37 |只看该作者
看提示信息吧,isql格式为
isql -Uusername -Ppasswd -SServerName -DDB_Name -i/tmp/sql_file.sql -o/tmp/out_file.log

在*.sql文件中
Use DB_Name
go
select   *  from  table
go
exit

ServerName在SYBASE配置文件可以查看.

论坛徽章:
33
ChinaUnix元老
日期:2018-07-04 15:10:362015年亚洲杯之阿联酋
日期:2015-02-06 17:15:532015亚冠之武里南联
日期:2015-06-06 15:40:252015亚冠之北京国安
日期:2015-06-17 15:42:412022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:322015亚冠之阿尔纳斯尔
日期:2015-09-20 09:42:1215-16赛季CBA联赛之北京
日期:2016-01-15 10:03:5915-16赛季CBA联赛之青岛
日期:2016-04-26 16:44:4915-16赛季CBA联赛之广夏
日期:2018-07-04 15:33:21C
日期:2016-10-25 16:12:142017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之同曦
日期:2017-02-22 22:41:10
3 [报告]
发表于 2013-06-05 08:45 |只看该作者
你的isql格式有问题!

论坛徽章:
6
水瓶座
日期:2014-06-04 03:34:37水瓶座
日期:2014-06-17 13:20:31数据库技术版块每日发帖之星
日期:2016-07-09 06:20:00数据库技术版块每日发帖之星
日期:2016-07-17 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
4 [报告]
发表于 2013-06-05 15:02 |只看该作者
/tmp/sql_file的内容是不是有回车或者中文空格?

论坛徽章:
0
5 [报告]
发表于 2013-06-05 22:02 |只看该作者
可能是sql脚本不是Unix格式,试试 dos2unix  dos.sql > unix.sql  转换一下。

isql -S 后面跟的是服务器的连接别名,在 interfaces 中配置的,用 dscp 命令可以创建和修改。  -s"|"  说明配置有问题。
通常,采用环境变量   DSQUERY 进行设置,之后,就不需要 -S 参数了。
如果有多个Sybase服务器,还是要乖乖的用 -S 参数,我习惯用服务器的主机名或者IP作为连接别名。

isql登陆后,use 后面是数据库的名字,是    CREATE DATABASE  创建的。

命令行,我一般用  isql -S dsname -U user -P password < in.sql > out.log  2>err.log 方式批量执行的。

论坛徽章:
0
6 [报告]
发表于 2013-06-25 16:50 |只看该作者
回复 5# crii


    厉害。就这个了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP