oracle中字符串(摘抄)
关于Oracle中字符串的说明
字符串
Oracle中有四种基本的字符串类型,分别是char、varchar2、nchar和nvarchar2。在Oracle中,所有串都以同样的格式存储。在数据块有一个1~3字节的长度字段,其后才是数据,如果数据位NULL,长度字段则表示为一个单字节值0xFF.
如果串的长度小于或等于250(0x01~0xFA),Oracle会使用1个字节来表示长度。对于所有长度超过250的串,都会在一个标志字节0xFE后跟有两个字节来表示长度。因此,如果有个包含“Hello Word”的varchar2(80),则在块中可能是:[11][H][e][l][l][o][][W][o][r][l][d]
如果在一个char(80)中存储同样的数据,则可能是:[80][H][e][l][l][o][][W][o][r][l][d][68][].....[][0]
例子:
ops$tkyte@ORA10G>create table t
2 (car_column char(20))
3 varchar2_column varchar2(20)
4 )
5 /
Table created.
ops$tkyte@ORA10G>insert into t values('Hello World','Hello World');
1 row created.
ops$tkyte@ORA10G> select * from t;
CHAR_COLUMN VARHCAR2_COLUMN
--------------------------------------------
Hello World Hello World
ops$tkyte@ORA10G> select * from t where char_column='Hello World';
CHAR_COLUMN VARHCAR2_COLUMN
--------------------------------------------
Hello World Hello World
ops$tkyte@ORA10G>select * from t where varchar2_column='Hello World';
CHAR_COLUMN VARHCAR2_COLUMN
--------------------------------------------
Hello World Hello World
以上的操作看不出什么效果对吧,继续看下面的内容:
ops$tkyte@ORA10G>select * from t where cahr_column=varchar2_column;
no rows selected
原因是在char列比较时,char(11)直接量('Hello World')已经提升为一个char(
相关文档:
crsctl stop crs
killall init.crsd
cd /etc/init.d
rm -rf init.crs init.crsd init.cssd init.evmd
rm -rf /tmp/.oracle/
rm -rf /var/tmp/
rm -rf /var/tmp/.oracle/
cd /etc
rm -rf oraInst.loc oracle/ oratab
rm -rf $ORACLE_BASE
dd if=/dev/zero of=/dev/raw/raw_voting_disks bs=1024k
dd if=/dev/zero ......
从上周起,服务器Oracle数据库出现问题,用不到半天,就会报maxsession(150)的问题,肯定是数据库的会话超过最大数了。
由于服务器跑的是文件传输应用,占用的请求和会话肯定很大,因此用户数不大就已经让oracle的会话数达到最大值。
处理方式不外乎两种:扩大oracle最大session数以及清除inact ......
For win:
1、新建一个批处理文件b.bat,该文件目录下要有exp.exe文件
批处理文件内容:
exp userid=user/passfile=i:\db%date:~0,10%.dmp log=i:\db%date:~0,10%.log
2、新建任务关联b.bat文件即可。
For linux:
1、切到oracle用户下新建一个文件,如b.sh ,并赋于可执行权限 c ......
[oracle@liwei admin]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu May 1 15:55:18 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> quit
Disconnected
[oracle@liwei admin]$ sqlplus "/ as sysdba"
SQL*Plus: Release 10 ......