- 浏览: 552898 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (350)
- Sybase (30)
- SQL SERVER2005 (14)
- 数据库 (27)
- SSH框架 (27)
- WebService (21)
- 下载-软件收藏 (15)
- 随笔-日常使用 (9)
- Flex 相关 (13)
- Linux (11)
- Web (64)
- XML相关 (9)
- Socket相关 (1)
- Elipse (3)
- 统计报表 (11)
- 线程相关 (3)
- Java相关 (37)
- JAVASCRIPT (19)
- JAVA反射 (3)
- JSP标签 (3)
- 随笔-其他 (2)
- 随笔-设计模式 (3)
- 随笔-架构师相关 (1)
- 下载-源码 (7)
- 下载-帮助文档 (1)
- 下载-插件 (6)
- 技术-.NET (2)
- 技术-Excel VBA (8)
- 应用-地图相关 (2)
- 应用-GSM短信猫 (5)
- 应用-单点登录 (3)
- Android相关 (3)
最新评论
-
sucheng2016:
发现jconn4.jar 里面有getBlob(String) ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver -
sucheng2016:
java.lang.UnsupportedOperationE ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver -
ok123zxx:
没下文了吗
通过 Tomcat Advanced I/O 获得高性能的 Ajax tocmat6+CometProcessor -
q1345111:
大家这个问题 尚未完成方法 com.sybase.jdbc3. ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver -
bdk82924:
heshujing217187 写道问题同1楼一样,求解!换j ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver
http://bbs.chinaunix.net/thread-2292040-1-1.html
Sybase数据库技术博客开通了。欢迎讨论。 Sybase数据库技术,数据库恢复:http://www.dbainfo.net 原文链接:http://www.dbainfo.net/sybase-ase-objectname-case-insensitive.htm =========================================== 在Sybase ASE中默认的情况是对象名或者字段名区分大小写,数据库内的字符按照二进制进行排序。单字节字符就按照字符的ASCII值排序,对于多字节(如:一个汉字)字符则是按照第一个字节的ASCII值进行排序。此时,汉字的排序是没有意义的。 但是,有时候会遇到要求对象名或者对象字段名不区分大小写的情况。比如:将其他rdbms的数据库移植到sybase ASE数据库(比如:ASA,oracle等);业务系统要求对象名不区分大小写等场景。 本文介绍在Sybase ASE 15.0.3中调整字符集和排序顺序使得ASE不区分对象名和字段名的大小写。 在谈到数据库的字符集时,不得不提到数据库的排序顺序。字符集和排序顺序的关系如此紧密,必须同时调整二者才能实现在ASE中不区分对象名的大小写。 ASE 中的字符集有很多种,随着版本的升级,好像字符集种类也是越来越丰富。在ASE11.9.2版本中还没有支持简体中文的字符集cp936,仅有eucgb 这个中文字符集。在最新的ASE15.x版本中,可以用作简体中文的字符集有:cp936,eucgb,gb18030,utf8;支持繁体中文的字符集有:cp950,big5,big5hk,euccns,utf8。如果仅仅需要支持简体中文的话,那么用cp936足够了。考虑ASE数据库支持国际化,则可选用utf8。 如何既支持简体中文又能容纳繁体中文呢? 对于此问题,我感觉应该用utf8字符集。因为在ASE中简体或者繁体中文分别有不同的字符集,只能选择一个最“包容”,范围最广的字符集:utf8。 转入正题: 我的测试环境安装的ASE字符集为:iso_1,默认的字符集排序顺序为:bin__iso_1。无论对象名还是对象内的数据,都是严格区分大小写的。 第一步:检查数据库内是否安装了不区分大小写的iso_1字符集。 select id,name from master..syscharsets where name like ‘%iso_1%’ 查询结果为: 1> SELECT id,name FROM master..syscharsets WHERE name LIKE '%iso_1%' 2> go id name --- ------------------------------ 50 bin_iso_1 1 iso_1 (2 rows affected) 说明数据库内安装有iso_1字符集和按照二进制值进行排序的bin_iso_1(排序顺序在其他rdbms中好像被称为collate,不太好翻译,有的翻译为“整理”,感觉很别扭。在mssqlserver和mysql中都有这个概念。) 第二步:安装不区分大小的iso_1的整理collate 切换到字符集目录下: cd %sybase%\charsets\iso_1 (unix下位:cd $SYBASE/charsets/iso_1) 发现D:\sybase\charsets\iso_1中有几个*.srt文件,它们分别对应不同的“整理”–排序顺序。 D:\sybase\charsets\iso_1>dir *.srt 驱动器 D 中的卷没有标签。 卷的序列号是 24C3-2A76 D:\sybase\charsets\iso_1 的目录 2004-11-02 02:13 656 binary.srt 2004-11-02 02:13 8,703 dictiona.srt 2004-11-02 02:13 8,703 dictionary.srt 2004-11-02 02:13 8,669 espdict.srt 2004-11-02 02:13 8,682 espnoac.srt 2004-11-02 02:13 8,584 espnocs.srt 2004-11-02 02:13 8,738 noaccent.srt 2004-11-02 02:13 8,738 noaccents.srt 2004-11-02 02:13 9,209 nocase.srt 2004-11-02 02:13 9,312 nocasepr.srt 2004-11-02 02:13 9,312 nocasepref.srt 11 个文件 89,306 字节 0 个目录 17,730,179,072 可用字节 D:\sybase\charsets\iso_1> 其中:binary.srt表示二进制排序,dictiona.srt表示按照字典顺序,nocase.srt表示不区分大小的排序(具体的还有:nocasepr.srt,nocasepref.srt,好像是dictionary order,case insensitive with preference,具体没有细研究!) 本文的场景需要nocase.srt这个。 安装nocase.srt这个排序顺序(“整理”) charset -Usa -P -Stest nocase.srt iso_1 D:\sybase\charsets\iso_1>charset -Usa -P -Stest nocase.srt iso_1 Loading file 'nocase.srt'. Found a [sortorder] section. This IS Class-1 sort ORDER. Character SET FOR the sort ORDER IS already IN the Syscharsets TABLE. Sort ORDER (ID = 52 ,CSID = 1 ) WITH NAME = 'nocase_iso_1' already EXISTS IN the Syscharsets system TABLE. Do you wish TO UPDATE this sort ORDER WITH the definitions found IN your localization file FOR sort ORDER (ID = 52, CSID = 1, NAME = 'nocase_iso_1')? (yes/no): yes Finished loading file 'nocase.srt'. 1 sort ORDER loaded successfully 第三步:在ASE中配置数据库的排序顺序。 首先,检查ASE当前的排序顺序,用sp_helpsort这个系统存错过程。在输出结果的Sort Order Description部分,看到有: Sort ORDER Description ------------------------------------------------------------------ Character SET = 1, iso_1 ISO 8859-1 (Latin-1) - Western European 8-bit character SET. Sort ORDER = 50, bin_iso_1 BINARY ordering, FOR the ISO 8859/1 OR Latin-1 character SET ( iso_1). Characters, IN ORDER 可看出当前排序顺序为:区分大小写的二进制顺序bin_iso_1。 利用如下的SQL语句检查刚才安装的nocase.srt排序顺序在syscharsets表中对应的id值。 select id,name from master.dbo.syscharsets where name like ‘%iso_1%’ 1> SELECT id,name FROM master.dbo.syscharsets WHERE name LIKE '%iso_1%' 2> go id name --- ------------------------------ 50 bin_iso_1 1 iso_1 52 nocase_iso_1 (3 rows affected) 1> 刚才安装的不区分大小写的排序对应ID为:52。 利用系统存储过程sp_configure 修改默认排序顺序,执行: sp_configure “default sortorder id”,52 执行完毕后,需要重启启动ASE两次(这和改字符集的时候是一样的,)。 ASE启动之后,用sp_configure “default sortorder id”检查,当前排序顺序值为:52. 用sp_helpsort检查,Sort Order Description部分的信息为: Sort ORDER Description ------------------------------------------------------------------ Character SET = 1, iso_1 ISO 8859-1 (Latin-1) - Western European 8-bit character SET. Sort ORDER = 52, nocase_iso_1 Case-insensitive dictionary sort ORDER FOR USE WITH several We stern-European languages including English, French, AND German . Uses the ISO 8859-1 character SET. Characters, IN ORDER 发现,已经修改完成了。下面做个试验测试一下。 1> USE andkylee 2> go 1> CREATE TABLE ANDKylee(ID int NOT NULL,NaMe varchar(30) NULL) 2> go 1> CREATE TABLE andkylee(id int NOT NULL,name varchar(30) NULL) 2> go Msg 2714, Level 16, State 1: Server 'TEST', Line 1: There IS already an object named 'andkylee' IN the DATABASE. 1> INSERT INTO ANDKYLEE VALUES(1,'aaaa') 2> INSERT INTO andkylee VALUES(1,'AAAA') 3> INSERT INTO aNDKYLEE VALUES(2,'bbBB') 4> INSERT INTO andkyLEE VALUES(2,'BBbb') 5> go (1 row affected) (1 row affected) (1 row affected) (1 row affected) 1> SELECT * FROM andkyLEE WHERE name='AAAA' 2> go ID NaMe ----------- ------------------------------ 1 aaaa 1 AAAA (2 rows affected) 1> SELECT * FROM andkylee WHERE name='aaaa' 2> go ID NaMe ----------- ------------------------------ 1 aaaa 1 AAAA (2 rows affected) 1> SELECT * FROM andkylee WHERE name='BbBb' 2> go ID NaMe ----------- ------------------------------ 2 bbBB 2 BBbb (2 rows affected) 1> SELECT * FROM ANDKYLEE ORDER BY name 2> go ID NaMe ----------- ------------------------------ 1 AAAA 1 aaaa 2 BBbb 2 bbBB (4 rows affected) 1> 可以发现,对象名,字段名,还有表内的数据都不区分大小写了。 最后强调两点: 1.改成不区分大小写的排序顺序要慎重。对象名或者字段名不区分大小写可能问题不多,需要慎重考虑表内数据是否真正地不区分大小写。 2.最好在刚安装完ASE数据库服务器后修改数据库的排序顺序,或者确保各个库内已有的对象名在不区分大小写后是唯一的。我在测试的时候遇到在转化后即将导致sysobjects索引键冲突而失败的情况。 用户库andkylee内原来用testA和testa两种表,在转化的过程报如下的错误: 00:00000:00001:2010/09/06 11:26:34.59 server Rebuilding indexes for andkylee..sysobjects. 00:00000:00001:2010/09/06 11:26:34.70 server Error: 1505, Severity: 16, State: 2 00:00000:00001:2010/09/06 11:26:34.71 server Create unique index aborted on duplicate key. Primary key is '"testa", 1' 00:00000:00001:2010/09/06 11:26:34.76 server Error: 3436, Severity: 20, State: 2 00:00000:00001:2010/09/06 11:26:34.76 server Cannot rebuild index 2 for the 'sysobjects' table in the 'andkylee' database. 00:00000:00001:2010/09/06 11:26:34.76 server Error: 3434, Severity: 20, State: 1 00:00000:00001:2010/09/06 11:26:34.76 server Cannot change sortorder. Server shutting down. Restart to continue with sortorder unchanged. 00:00000:00001:2010/09/06 11:26:34.76 kernel ueshutdown: exiting 有问题,欢迎讨论! ———————————————————————————————————— ——— 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载; ——— 转载务必注明原始出处 : http://www.dbainfo.net ——— 关键字: ASE 字符集 排序顺序 iso_1 nocase_iso_1 sp_helpsort default sortorder id ———————————————————————————————————— |
发表评论
-
Sybase的几个命令 sp_sysmon
2015-05-17 20:32 765sybase 常用 命令 1、sp_sysmon ... -
Sybase Isql 执行sql 指定编码
2014-04-22 15:53 1579isql -Usa -P -Sxxxx -Jcp936 -ix ... -
sybase 常见的存储过程
2013-09-02 10:12 1327sybase 常见的存储过程 sp_addgroup 在当前 ... -
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver
2013-01-28 19:48 13210com.sybase.jdbc3.jdbc.SybDriver ... -
Sybase IQ 15 的导出功能
2012-05-05 10:39 987直接执行sql 语句 dbisql -c 'uid=db ... -
Sybase 存储过程(嵌套调用)使用另外一个存储过程的结果集 .
2012-04-12 09:01 1247转:http://blog.csdn.net/lovc ... -
sybase配置,sp_configure
2012-03-07 13:49 3061转:http://blog.csdn.net/zxlyx/ar ... -
如何删除IQ数据库中损坏的表
2011-11-11 10:37 1739转:http://blog.chinaunix.net ... -
Linux Sybase安装中碰到的一些问题
2011-11-03 15:03 880最近在linux 环境中安装了Sybase ASE15的环境 ... -
sybase ASE 整库 备份
2011-10-27 17:10 1187首先确保备份服务器正常运行 startserver -f RU ... -
修改Sybase数据库最大连接数
2011-10-27 16:23 7017修改连接数:如果数据库已经起不来了 怎么办? 修改安装目录 ... -
Sybase官方帮助文档多语言版
2011-09-09 15:05 1270http://infocenter.sybase.com/he ... -
Xbase 相关操作
2011-07-04 17:16 1364命令 作用 备注 ... -
Sybase中使用xp_cmdShell命令
2011-06-29 13:28 3134Sybase中使用xp_cmdShell命令 有两个前提: ... -
Sybase IQ 自增序列恢复
2011-05-30 17:54 1254CREATE TABLE mytable(c ... -
Sybase IQ 数据备份
2011-05-27 12:25 1504备份可以采用 temp_extract_name1 ... -
Sybase SQL查询字段类型
2011-05-06 09:57 3039Sybase ASE 根据表名,查询表中所有字段的详 ... -
Sybase IQ Load 语句
2011-04-19 16:14 8478IQ Load 语句 参考 load in ... -
Sybase IQ 迁移表空间 sp_iqrelocate
2011-04-19 16:08 12221、首先将表空间的属性修改为 Relocate模式 (属性分 ... -
SybaseIQ的几个系统过程
2011-04-08 08:33 1398sp_iqlocks 显示与数据库中 IQ 存储区和目录存储 ...
相关推荐
Sybase ASE 12.5.4 ODBC驱动包, 4.0.x 版本 将zip解到d:\\sybasease目录下边,然后注册下边的内容: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers] ...
Sybase ASE ODBC Driver 驱动
SybaseASE1503 linux安装文档。Sybase IQ相关其他文档。 SybaseASE1503 linux安装文档。Sybase IQ相关其他文档。
SybaseASE15.0 Enhanced Full-Text Search Specialty Data Store.pdf SybaseASE15.0 HA_故障切换.pdf SybaseASE15.0 Historical Server用户指南.pdf SybaseASE15.0 Job Scheduler用户指南.pdf SybaseASE15.0 Monitor...
sybase ase 12.5数据库windows版,上传权限不够拆分成两个压缩包。
Sybase ASE 参考手册,中文版全四卷:第一卷 构建块;第二卷 命令;第三卷 过程;第四卷 表格。
在上述几种Linux平台上的数据库产品中,Sybase ASE的性能很好,紧凑的程序分发包里包含了全部文档、数据库备份和监视等工具,同时它对系统的要求不高(系统配置为32MB内存,包含文档的全部安装需要200MB硬盘,否则...
在window下安装使用Sybase ASE 12.5在window下安装使用Sybase ASE 12.5
SybaseASE12.5.2安装参考手册
Sybase ASE作为处理关键业务计算的最有效的数据管理平台之一而确立了其在业界的领先地位,并通过不断提升产品性能为IT人员创造领先的运行优势而声名远扬。Sybase ASE15新增了磁盘内加密功能、智能分区功能、专利的...
是sybase ase for linux企业版本在REDHAT AS5的安装纤细说明
5.1.4 SQL Server 10.x配置内存过大、Server不能启动时怎么办? 100 5.2 数据库被挂起 101 5.2.1 如何解决数据库被挂起的问题(error 926) 101 5.2.2 如何做 rebuild log 103 5.3 数据库恢复 105 5.3.1 如何删除坏的...
sybase ase参考手册:配置参数.pdf
分区技术可以将大的表或者索引分割成小的数据分区,并存放在不同的段中,不同的段可以存放在不同的逻辑或物理设备上。这样DBA可以更快捷地管理和维护这些较小的分区,而不是像以前那样不得不面对巨型的表和索引。这...
SYBASE_ASE 15.7.0 for windows 64bit 客户端
Sybase ASE 15.0.4 破解 破解文件在 Crack 目录
Sybase ASE 12.5.2 for Windows安装手册
Sybase ASE 15.0.4 破解 破解文件在 Crack 目录
sybase ase 各种版本功能对比 from sybase.cn