Google

不用系统sp_configure修改字符集

2007-08-26 19:25 来源: echoaix.cublog.cn 作者:echoaix 网友评论 0 条 浏览次数 214
 
不用系统sp_configure修改字符集
    rebuildmaster以后用新的master启动都是对应平台的缺省字符集,可以往往实际使用的字符集不是缺省的,这样就造成master库的备份不能load恢复,要改字符集必须先建sybsystemprocs数据库,然后installmaster,再用sp_configure改default character set id,太麻烦,况且sybsystemprocs库原来就有,只要恢复上master就都ok了
1开始是想改ase配置文件,可是配置文件中没有
2然后就是改susconfigures系统表
update sysconfigures set value=1 where name like ='default character set id' and value=2
修改是没有问题,成功了,可是一重启发现还是原样,没用,问了一下sybase说只能用sp_configure改
3本着能省就省的原则,导了一个sp_configure的ddl,在master库中建sp_configure,执行提示还需要spt_values,也建一个,再执行
sp_configure ‘default character set id’,1修改字符集成功
4总不是个好办法,sp_configure和spt_values的创建语法谁能记住啊,使用config_admin(),这玩意找不到任何文档,据说由ASE的一个
内部函数csf_main()来解析的,是需要查看ase源代码的,我的理解是select config_admin(@cmd,@configid,@newvalue,@value,NULL,NULL)返回1成功
第一个参数不清楚什么意思,值从1到多少都有,见过22的,一般用1就ok,第二个参数是要修改的配置项,对应sysconfigures中config;第三个参数是你要修改的值;第四个参数一直认为是原值,后来发现不是;五六参数也应该有不用null的,是不是在非数值值的配置项,不清楚,一般都是null。一个有用的例子;
select config(1,102,1,0,null,null)改系统表可写,第四个参数好像随便什么数都行,但null不行。则在没有sybsystemprocs库之前有用,要不就要改配置文件再重启ase,麻烦。
可是
1> select config_admin(1,131,1,2,null,null)
2> go
Msg 5856, Level 16, State 1:
Server 'test', Line 1:
The configuration parameter 'default character set id' can only be changed via
the stored procedure 'sp_configure'.
-----------
0
郁闷
5高人说能不能create proc sp_configure as select config_admin(1,131,1,2,null,null) 真是tnn的高
1> sp_configure
2> go
Msg 5824, Level 16, State 4:
Procedure 'sp_configure', Line 1:
Cannot reconfigure server to use sort order ID 2, because the row for its
underlying character set (ID 1) does not exist in syscharsets.
 -----------
           0
我的sort order ID是50,create proc sp_configure as select config_admin(1,131,1,50,null,null)
1> sp_configure
2> go
 -----------
           1
终于成功,重启2遍,改一下sysservers中备份服务器的逻辑名,再单用户方式下恢复master备份,一切ok
说明;
1其实sp_configure的修改根本是通过config_admin()实现,不过sp_configure的真够复杂的
2 不推荐用config_admin(),除非你有相当把握,改字符集请按常规方法
3 测试都在windows平台下ase 12.5.3下,在unix下应该是一样,没试,在windows下直接用master备份当作master文件应该就可以。
4 一些想法有时可能用的上,懒有时就是动力。
5对config_admin()十分清楚的兄弟指导交流一下
上一篇: 下一篇:

相关主题:Sybase字符集  sp_configure

网友评论