在Oracle中,经常把字段的类型设置成varchar2。
以前都是认为每一个中文字符都是占用2个字节,即varchar2(30)只能存放15个中文或30个英文。
今天偶然发现,这个其实和Oracle的配置是相关的,用以下语句查询:
select * from v$nls_parameters t where t.PARAMETER='NLS_CHARACTERSET';
可以查询到当前数据库的字符集,如果value=GB2312,那么一个汉字占用2个字节,如果value=AL32UTF8,那么一个汉字占用3个字节。
string uda = "adsafsdgdsfhdgkjlkyriuuyuiouipip收复失地饭是钢对符合法规和结果返回结果好看开了的复合肥各家各户客户经理发给";
Response.Write("sdsf: "+uda.Length+" tttttttt:"+uda.ToCharArray().Length);
// adsafsdgdsfhdgkjlkyriuuyuiouipip收复失地饭是钢对符合法规和结果返回结果好看开了的复合肥各家各户客户经理发给
// char[] b = uda.ToCharArray;
byte[] sarr = System.Text.Encoding.Default.GetBytes(uda);
Response.Write("<br/> ggg:"+sarr.Length);
Response.Write("<br>sff:"+uda);
分享到:
相关推荐
### Oracle字符集转换详解 #### 一、引言 在Oracle数据库管理中,字符集的选择至关重要,它直接关系到数据的正确存储与显示。当创建数据库时,如果选择了不合适的字符集,后续处理可能会遇到一系列问题。例如,在...
### Oracle中文字符集问题解析与解决方案 在Oracle数据库的日常管理和应用开发中,中文字符集的设置和管理是一项至关重要的工作。不当的字符集配置可能导致数据存储错误、查询结果异常或用户界面显示乱码等问题。...
* 定长多字节编码:每一个字符都使用固定长度字节的编码方案,目前 Oracle 唯一支持的定长多字节编码是 AF16UTF16,也是仅用于国家字符集。 2.2.3 Unicode 编码 * Unicode 是一个涵盖了目前全世界使用的所有已知...
- UTF-8 是一种变长多字节编码,可以用 1、2 或 3 个字节表示一个 Unicode 字符。 **3.4 字符集超级** 当一种字符集 A 的编码数值包含所有另一种字符集 B 的编码数值,并且两种字符集相同编码数值代表相同的字符...
#### 二、Oracle字符集的基础知识 1. **Oracle字符集的基本概念**: - **字符集(Character Set)**:用于定义如何表示文字和符号的集合。 - **国家字符集(National Character Set)**:为特定语言环境定义的...
UTL_I18N包中的`UTL_I18N.RAW_TO_CHAR`函数可以将一个字节串转换为字符,配合其他函数可以用来获取汉字的ASCII码,从而转换为拼音。但Oracle默认不支持直接获取拼音首字母,因此通常需要自定义函数来处理。 下面是...
Oracle字符集是Oracle数据库系统中一个至关重要的概念,它决定了数据库如何存储和处理文本数据,尤其是在涉及多种语言和文化环境的全球化应用中。字符集是一个符号的集合,它定义了一组字节序列如何被解释为特定语言...
Oracle字符集的命名遵循一定的规则,例如ZHS16GBK表示采用GBK编码的16位简体中文字符集。 字符集主要有单字节和多字节编码两种类型。单字节编码,如US7ASCII和WE8ISO8859P1,分别有7位和8位,最多可表示128和256个...
说明:Oracle中需要创建用户一定是要具有dba(数据库管理员)权限的用户才能创建,而且创建的新用户不具备任何权限,连登录都不可以。 用法:create user 新用户名 identified by 密码 例子: 2. 修改密码 说明:...
3. **bit**: 用于存储布尔值或单个位的信息,在SQL Server中占1个字节,而Oracle中的对应类型为`NUMBER(2)`。 4. **char**: 固定长度的字符类型,例如`char(10)`表示存储10个字符,在Oracle中对应的是`CHAR(10)`。 5...
- **NCHAR/NVARCHAR2**: 这两个类型在Oracle中均为4KB,在SQL Server中也为4KB。这些类型用于存储Unicode字符数据。 2. **数值类型** - **NUMBER vs NUMERIC/DECIMAL vs INT/INTEGER vs FLOAT/REAL** - **...
INSERT 和 UPDATE 时最大可操作的字符串长度小于等于4000 个单字节,如果要插入更长的字符串,请考虑字段用 CLOB 类型,方法借用 Oracle 里自带的 DBMS_LOB 程序包。插入修改记录前一定要做进行非空和长度判断,不能...
`length`和`lengthb`函数分别返回字符串的字符数和字节数,后者在处理多字节字符集时更为准确: ```sql SELECT LENGTH('accp') FROM DUAL; SELECT LENGTHB('accp') FROM DUAL; ``` #### 2. 子串提取 `substr`函数...
Oracle的字符集命名遵循一定的规则,如“<语言><比特位数><编码>”,例如ZHS16GBK表示采用GBK编码的16位简体中文字符集。字符集分为单字节和多字节编码。单字节编码如US7ASCII支持128个字符,而多字节编码如GBK、AL...
- Oracle 的 `BFILE` 类型用于存储数据库外部的二进制数据,DB2/400 的 `DATALINK` 类型类似,两者都可以指向数据库外部的文件。 - Oracle 的 `ROWID` 类型是一个虚拟列,用于标识表中的唯一行,DB2/400 也有相应...
- 对于由一个`VARCHAR2(100)`和一个`NUMBER(9)`组成的复合索引,假设`VARCHAR2`平均占用20字符,则整个条目的开销为31字节(7字节开销 + 20字节`VARCHAR2` + 4字节`NUMBER`)。 **示例计算**:复合索引的每个条目...
ORACLE常用命令 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup ...
Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...
- **LENGTH(字符串|列)**:返回字符串的长度(注意:在Oracle中,长度是以字节为单位计算的,而非字符)。 - **REPLACE(字符串|列, 被替换字符串, 替换后的字符串)**:将指定字符串中的某些部分替换为其他字符串。 -...
例如,在UTF-8编码中,每个中文字符通常占用3个字节,而在ZHS16GBK编码中,中文字符则占用2个字节。如果从一个使用ZHS16GBK字符集的数据库导出数据,然后尝试导入到一个使用UTF-8字符集的数据库中,可能会出现大小不...