oracle中长字符串长度吗,Oracle 字符串长度函数

本文详细介绍了Oracle中的字符串长度函数,如LENGTH、LENGTHB、VSIZE、LENGTHC和LENGTH2等,并讨论了不同字符集(如UTF-8、GBK、ISO-8859-1)对中文字符存储的影响。示例展示了在不同函数下计算字符串长度的结果,揭示了字符集和字节数之间的关系。同时,提到了Oracle数据库中ROWNUM伪列的使用限制及其可能导致的误解。
摘要由CSDN通过智能技术生成

Oracle 字符串长度函数

LENGTH calculates length using characters as defined by the input character set.

LENGTHB uses bytes instead of characters.

VSIZE returns the number of bytes in the internal representation of expr.

LENGTHC uses Unicode complete characters.

LENGTH2 uses UCS2 codepoints.

LENGTH4 uses UCS4 codepoints

select length('adfad合理') "bytesLengthIs" from dual --7

select lengthb('adfad') "bytesLengthIs" from dual --5

select lengthb('adfad合理') "bytesLengthIs" from dual --11

select vsize('adfad合理') "bytesLengthIs" from dual --11

select lengthc('adfad合理')"bytesLengthIs" from dual --7

因此,在utf-8的字符集下

lengthb=vsize

lengthc=length

utf-8的中文字符占用3个字节,gbk的中文字符占用2个字节,iso-8859-1的中文字符被识别为占用2个字节,iso不支持中文字符的编码,应该是都当成某个拉丁字母了.Oracle没有关系,oracle只是负责存储数据.

可以先用 select * from v$nls_parameters 看看oracle的字符集

相关文档:

关键字: oracle cast() 函数问题

SQL> create table t1(a varchar(10));

Table created.

SQL> insert into t1 values ('12.3456');

1 row created.

SQL> select round(a) from t1;

ROUND(A)

----------

12

SQL> select round(a,3) from t1;

ROUN ......

--sqlplus

sqlplus;

sys /password as sysdba;

--查找用户ID(user#),数据库里面存放的用户都是大写!

select user#,name,password from user$ where name ='FACT';

USER# NAME                    &nbsp ......

本实例已完全通过测试,单向,又向同步都可使用.

--名词说明:源——被同步的数据库

目的——要同步到的数据库

前6步必须执行,第6以后是一些辅助信息.

--1、在目的数据库上,创建dblink

drop public database link dblink_orc9 ......

对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(,>=,=,between..and 时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来,其实您只要理解好了这个 rownum 伪列的意义就不应该感到惊奇,同样是伪列,r ......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值