sybase 常见问题解决

//清理日志空间
dump tran master with no_log
go

dump tran sgsovsc with no_log
go

dump tran sgsovsc with truncate_only
go
//查看当前已经安装的字符集
use master
go
select id,name from syscharsets
go

//查看当前使用的缺省字符集
sp_configure "default char"
go


//查看服务器端字符集的详细,有4个表
sp_helpsort
go

//查看客户端字符集
select @@client_csname
go

//设置服务端字符集为utf8
sp_configure 'default character set id',190
go
shutdown
go
然后重启服务

//修改sa密码
sp_password   '123456',NULL,sa
go


//导出文本文件用|分隔
bcp   tableName   out/in   result.txt   -c   -t"|"   -Uuser   -Ppassword

--------------------------------------------------------------
      sybase12.5安装时的缺省charset是cp850,这样不支持中文。语句中插入的中文取出来会是乱码  
      问一下sybase公司的人,那些家伙都说客户端也要设置相同的字符才行,我试一下,不行。  
      又说服务端用cp936或eucgb,客户端设置一样,这样中文是可以用,但是cp936和eucgb却要区分大小写。如果那样用数据库简直是要人的命,不可能记得住每个表的名称和字段的大小写的。  
      他们又推荐utf8,我再试,只支持部分中文字,有的字就是不认。  
      一句话,sybase就是烂,比oracle和sqlserver烂多了,既然开发了中文字符支持,为什么又不支持一下不区分大小写呢?  
      当我万般无奈准备用回sybase120的时候,决定再试一下。服务端用utf8,虽然所有的sybase官方推荐客户端设置要和服务端设置一样,但我要试一下客户端用cp936  
效果如何。结果成功!。既可以支持中文,又可以不区分大小写。  
sybase那帮人也真够烂的,自己的产品都不知怎么用。  
   
记住,服务端设utf8,客户端cp936。
---------------------------------------------------------------

//加载utf8字符集

sybase设置字符集,以utf-8为例
服务器端:
c:\>cd \sybase\charsets\utf8
c:\sybase\charsets\utf8> charset -Usa -P -Schenwei(小写才行) binary.srt utf8
修改数据库字符集为utf8:sp_configure "default character set id",190
修改数据库大小不敏感:sp_configure 'default sortorder id',52
客户端:
客户端字符集配置(为数据库备份和恢复用到):
\sybase\locales\locales.dat
找到NT,修改最后一行配置为locale = default, us_english, cp936

//bcp命令
bcp ovsc..maxspeed out D:\cc.txt -Usa -P -Shunter -c -t "|"

你可能感兴趣的:(sybase,数据库)