Sybase常见问题(有新问题再更新)
2008-01-28 12:54
281 查看
1. Sybase数据库日志满
碰到这种情况,常会出现能查询数据,但无法更新数据,启动事务等。在代码中跟踪可以发现,连接能够打开,但事务却无法开启。常会提示“Connection to Sybase server has been lost. All active transactions have been rollbacked”的错误信息。
解决办法:
若是开发数据库,则直接清除日志即可。 若是正式数据库:建议备份当前日志 再清空日志,扩日志设备及日志数据库。清空日志的语句为『dump transaction database_name with no_log 』
2.Sybase中文乱码
出现这种情况的原因是sybase的服务器字符集不支持中文或是客户端的字符集与服务端字符集不一致。可以考虑更改sybase的默认字符集。在Sybase12.5的版本中支持中文的字符集有CP936、EUCGB、UTF-8和GB18030。这里我们针对Sybase服务器字符集不支持中文给出解决办法:
解决办法(安装cp936字符集):
假设sybase的安装路径为"D:\Sybase"。
(1)D:\>cd \sybase\charsets\cp936
(2) D:\sybase\charsets\cp936> charset -Usa -Psa_pass -Sserver_name binary.srt cp936
(3) 在InterActiveSQL中执行『select name,id from syscharsets』,需注意的是这里要选择在“master”数据库下执行,第4步也是。找到name为cp936的ID,假定是171。
(4)在InterActiveSQL中执行『sp_configure 'default character set id',171』
(5) 重启Sybase服务两次。因为第一次启动后会自动结束掉,所以需要重启第二次。
3.Sybase数据库整个库导出导入
导出:【declare @filename varchar(30)
select @filename='E:\BCP\bf_' + Convert(varchar(10),getdate(),110) + '.dat'
dump database ExamSysDB to @filename
go 】
导入:【load database pubs2
from 'E:\bcp\bf_080101.dat'】
4.bcp导入导出数据
导入到ExamSysDB数据库的TB_USER表中:【bcp ExamSysDB..TB_USER in C:\BCP\SqlServerOut\TB_USER.bcp -Usa -P -SSyDevserver -Jcp936 -c 】
导出ExamSysDB数据库的TB_USER表的数据:【bcp ExamSysDB..TB_USER out C:\BCP\SqlServerOut\TB_USER.bcp -Usa -P -SSyDevserver -Jcp936 -c 】
批量导入数据的参考SQL【set nocount on
use ExamSysDB
go
select 'bcp ExamSysDB..' + name + ' in C:\BCP\SqlServerOut\'
+ name + '.bcp -Usa -P -SDEVSERVER -Jcp936 -c '
from sysobjects
where type='U' and name like '%TB_%'
go】
批量导出数据的参考SQL【set nocount on
use ExamSysDB
go
select 'bcp ExamSysDB..' + name + ' out C:\BCP\SqlServerOut\'
+ name + '.bcp -Usa -Pdbadmin -SDevserver -c '
from sysobjects
where type='U' and name like '%TB_%'
go】
碰到这种情况,常会出现能查询数据,但无法更新数据,启动事务等。在代码中跟踪可以发现,连接能够打开,但事务却无法开启。常会提示“Connection to Sybase server has been lost. All active transactions have been rollbacked”的错误信息。
解决办法:
若是开发数据库,则直接清除日志即可。 若是正式数据库:建议备份当前日志 再清空日志,扩日志设备及日志数据库。清空日志的语句为『dump transaction database_name with no_log 』
2.Sybase中文乱码
出现这种情况的原因是sybase的服务器字符集不支持中文或是客户端的字符集与服务端字符集不一致。可以考虑更改sybase的默认字符集。在Sybase12.5的版本中支持中文的字符集有CP936、EUCGB、UTF-8和GB18030。这里我们针对Sybase服务器字符集不支持中文给出解决办法:
解决办法(安装cp936字符集):
假设sybase的安装路径为"D:\Sybase"。
(1)D:\>cd \sybase\charsets\cp936
(2) D:\sybase\charsets\cp936> charset -Usa -Psa_pass -Sserver_name binary.srt cp936
(3) 在InterActiveSQL中执行『select name,id from syscharsets』,需注意的是这里要选择在“master”数据库下执行,第4步也是。找到name为cp936的ID,假定是171。
(4)在InterActiveSQL中执行『sp_configure 'default character set id',171』
(5) 重启Sybase服务两次。因为第一次启动后会自动结束掉,所以需要重启第二次。
3.Sybase数据库整个库导出导入
导出:【declare @filename varchar(30)
select @filename='E:\BCP\bf_' + Convert(varchar(10),getdate(),110) + '.dat'
dump database ExamSysDB to @filename
go 】
导入:【load database pubs2
from 'E:\bcp\bf_080101.dat'】
4.bcp导入导出数据
导入到ExamSysDB数据库的TB_USER表中:【bcp ExamSysDB..TB_USER in C:\BCP\SqlServerOut\TB_USER.bcp -Usa -P -SSyDevserver -Jcp936 -c 】
导出ExamSysDB数据库的TB_USER表的数据:【bcp ExamSysDB..TB_USER out C:\BCP\SqlServerOut\TB_USER.bcp -Usa -P -SSyDevserver -Jcp936 -c 】
批量导入数据的参考SQL【set nocount on
use ExamSysDB
go
select 'bcp ExamSysDB..' + name + ' in C:\BCP\SqlServerOut\'
+ name + '.bcp -Usa -P -SDEVSERVER -Jcp936 -c '
from sysobjects
where type='U' and name like '%TB_%'
go】
批量导出数据的参考SQL【set nocount on
use ExamSysDB
go
select 'bcp ExamSysDB..' + name + ' out C:\BCP\SqlServerOut\'
+ name + '.bcp -Usa -Pdbadmin -SDevserver -c '
from sysobjects
where type='U' and name like '%TB_%'
go】
相关文章推荐
- Sybase常见问题(有新问题再更新)
- Android 常见问题收集 (持续更新)
- SQL报表(Report Builder)里面的几个常见问题(持续更新)
- hessian中常见问题解决---持续更新中
- AndroidStudio使用常见问题(实时更新)
- Fedora Core 5 常见问题更新(非官方)
- OpenCV常见问题汇总(持续更新)
- Vue+Webpack常见问题(持续更新)
- Fedora Core 5 常见问题更新(非官方)
- Django系列教程:[X]学习中的常见问题(不定期更新)
- Android面试常见问题:如何在不发一个新版本的情况下更新App布局?
- linux常见问题汇总(长期顶置更新)
- Windows补丁和更新常见问题解决方法
- symbian 界面设计常见问题及解决方法(12.15更新)
- Fedora Core 5 常见问题更新(非官方)
- [总结]vue开发常见知识点及问题资料整理(持续更新)
- windows azure常见问题处理及技巧[持续更新]
- 面试常见问题及相关答案整理(持续更新中)
- 【猿小白】常见Java面试问题汇总~~~持续更新~~~直到拿到心仪的offer
- asp.net 与oracle 连接的一些常见问题(不断更新中)