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的字符集
相关文档:
按表方式的导出,导入
exp SYSTEM/SYSTEM@SBJSDB00 TABLES=KOKAN90.MASTER_SEND_LIMIT LOG=C:\A.LOG
IMP SYSTEM/SYSTEM@SBJSDB00 IGNORE=Y FULL=Y LOG=C:\B.LOG
之前用过很多语句都报错,得到的教训是 先执行exp SYSTEM/SYSTEM@SBJSDB00,按提示一步步输入成功过后,再把提示翻译成参数和参数值
关于参数说明用 exp hel ......
oracle Set 命令介绍
http://luoke920.javaeye.com/blog/323743
1). 设置当前session是否对修改的数据进行自动提交
SQL>SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}
2).在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句
SQL> SET ECHO {ON|OFF}
3).是否显示当前sql语句查询或修改的行数 ......
关键字: 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 ......
异常
预定义异常
oracle为常见错误预定义
在DBMS_STANDARD程序包中提供了这些定义
不需要显示声明
declare
sex student.stu_sex%type;
begin
select stu_sex into sex from student;
dbms_output.put_line('sex:'||sex);
exception
&nbs ......
--sqlplus
sqlplus;
sys /password as sysdba;
--查找用户ID(user#),数据库里面存放的用户都是大写!
select user#,name,password from user$ where name ='FACT';
USER# NAME   ......