- 浏览: 563504 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (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 788sybase 常用 命令 1、sp_sysmon ... -
Sybase Isql 执行sql 指定编码
2014-04-22 15:53 1607isql -Usa -P -Sxxxx -Jcp936 -ix ... -
sybase 常见的存储过程
2013-09-02 10:12 1374sybase 常见的存储过程 sp_addgroup 在当前 ... -
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver
2013-01-28 19:48 13274com.sybase.jdbc3.jdbc.SybDriver ... -
Sybase IQ 15 的导出功能
2012-05-05 10:39 1008直接执行sql 语句 dbisql -c 'uid=db ... -
Sybase 存储过程(嵌套调用)使用另外一个存储过程的结果集 .
2012-04-12 09:01 1268转:http://blog.csdn.net/lovc ... -
sybase配置,sp_configure
2012-03-07 13:49 3092转:http://blog.csdn.net/zxlyx/ar ... -
如何删除IQ数据库中损坏的表
2011-11-11 10:37 1761转:http://blog.chinaunix.net ... -
Linux Sybase安装中碰到的一些问题
2011-11-03 15:03 904最近在linux 环境中安装了Sybase ASE15的环境 ... -
sybase ASE 整库 备份
2011-10-27 17:10 1218首先确保备份服务器正常运行 startserver -f RU ... -
修改Sybase数据库最大连接数
2011-10-27 16:23 7048修改连接数:如果数据库已经起不来了 怎么办? 修改安装目录 ... -
Sybase官方帮助文档多语言版
2011-09-09 15:05 1295http://infocenter.sybase.com/he ... -
Xbase 相关操作
2011-07-04 17:16 1396命令 作用 备注 ... -
Sybase中使用xp_cmdShell命令
2011-06-29 13:28 3187Sybase中使用xp_cmdShell命令 有两个前提: ... -
Sybase IQ 自增序列恢复
2011-05-30 17:54 1277CREATE TABLE mytable(c ... -
Sybase IQ 数据备份
2011-05-27 12:25 1525备份可以采用 temp_extract_name1 ... -
Sybase SQL查询字段类型
2011-05-06 09:57 3080Sybase ASE 根据表名,查询表中所有字段的详 ... -
Sybase IQ Load 语句
2011-04-19 16:14 8534IQ Load 语句 参考 load in ... -
Sybase IQ 迁移表空间 sp_iqrelocate
2011-04-19 16:08 12521、首先将表空间的属性修改为 Relocate模式 (属性分 ... -
SybaseIQ的几个系统过程
2011-04-08 08:33 1424sp_iqlocks 显示与数据库中 IQ 存储区和目录存储 ...
相关推荐
Sybase ASE ODBC驱动程序是基于Windows平台的,它为各种编程语言(如C++、VB、Python等)提供了一个统一的接口,使得开发人员可以轻松地访问和操作Sybase ASE数据库。该驱动程序支持SQL语句执行、事务处理、结果集...
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] ...
在ASE12.5的时代,Sybase Central提供了一个用户友好的界面,使得DBA(数据库管理员)和开发者可以更轻松地执行日常管理任务,如创建和修改数据库对象,监控服务器性能,备份和恢复操作,以及处理用户权限和安全设置...
《Sybase ASE v12.5 系统管理指南》是一部深入探讨Sybase Adaptive Server Enterprise (ASE) v12.5版本系统管理的权威参考文献。该指南旨在帮助IT专业人员理解和掌握ASE数据库系统的运维与优化,从而确保系统的高效...
**Sybase ASE参考手册概述** Sybase Adaptive Server Enterprise(ASE),通常简称为Sybase ASE,是Sybase公司(现为SAP的一部分)开发的一款高性能的企业级关系型数据库管理系统。这本中文版的Sybase ASE参考手册...
Sybase ASE 12.5.2 安装参考手册 本手册旨在以图文方式,step by step 地描述在 Linux 上安装 Sybase ASE 数据库。以下是从该手册中提取的重要知识点: 知识点 1: Linux 安装 在安装 Sybase ASE 之前,需要先安装...
在本教程中,我们将深入探讨如何在CentOS操作系统上安装Sybase Adaptive Server Enterprise(ASE)15,这是一个高性能的企业级数据库管理系统。以下是安装过程的详细步骤,以及可能遇到的问题和解决方案,以及所需的...
Sybase ASE for Linux 12.5 安装指南 本文档旨在指导用户如何在 RedHat AS 5 上安装 Sybase ASE for Linux 12.5。 installation process covers the creation of a Sybase directory, setting up the user and ...
### 如何单独在备份机上启动Sybase ASE12.5 #### 背景介绍 Sybase Adaptive Server Enterprise (ASE) 是一款高性能的关系型数据库管理系统。版本12.5虽然较老,但在某些特定环境下仍被广泛使用。在本篇文章中,...
**Sybase ASE (Adaptive Server Enterprise)** 是一款高性能的关系型数据库管理系统,主要由Sybase公司开发,后来被SAP收购。它在企业级应用中广泛使用,尤其在金融、电信等对数据处理速度和稳定性有高要求的领域。...
sybase ase 12.5数据库windows版,上传权限不够拆分成两个压缩包。
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 15 操作指南核心知识点详解 #### 一、Sybase ASE 15 版本介绍 Sybase Adaptive Server Enterprise (ASE) 15 是一款高性能的企业级数据库管理系统,它提供了强大的数据处理能力和高度可靠的安全机制...
Sybase ASE 定时调度存储过程 在 Sybase ASE 环境中,定时调度存储过程是数据库管理员经常需要解决的问题。 Sybase ASE 提供了 Job Scheduler 机制来实现定时调度存储过程,然而,在安装和配置 Job Scheduler 之前...
在上述几种Linux平台上的数据库产品中,Sybase ASE的性能很好,紧凑的程序分发包里包含了全部文档、数据库备份和监视等工具,同时它对系统的要求不高(系统配置为32MB内存,包含文档的全部安装需要200MB硬盘,否则...
### SYBASE_ASE 15.7.0 for Windows 64bit客户端 #### 一、概述 **SYBASE_ASE 15.7.0 for Windows 64bit客户端**是一款高性能的企业级数据库管理系统软件,它专为Windows 64位操作系统设计,能够提供强大的数据...
Sybase ASE作为处理关键业务计算的最有效的数据管理平台之一而确立了其在业界的领先地位,并通过不断提升产品性能为IT人员创造领先的运行优势而声名远扬。Sybase ASE15新增了磁盘内加密功能、智能分区功能、专利的...
13. **锁**:Sybase ASE中的锁用于控制并发访问,有表锁、页锁、行锁等多种类型,防止数据冲突和不一致。 14. **数据库备份与恢复**:备份是为了防止数据丢失,恢复则是在出现问题时还原数据到备份时的状态。 **...
Sybase Adaptive Server Enterprise(ASE)是一款广泛使用的高性能关系型数据库管理系统(RDBMS),由Sybase公司开发,现为SAP公司的一部分。ASE版本15.7是该数据库系统的一个较新版本,提供了增强的功能和改进的...