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(
相关文档:
oracle表空间操作详解
1
2
3作者: 来源: 更新日期:2006-01-04
5
6
7建立表空间
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
众所周知的几个结果集集合操作命令,今天详细地测试了一下,发现一些问题,记录备考。 假设我们有一个表Student,包括以下字段与数据: drop table student;
create table student
(
id int primary key,
name nvarchar2(50) not null,
score number not null
);
insert into student values(1,'Aaron',78);
inse ......
想使用PL/SQL开发工具,但不想安装那个几百兆的oracle客户端,于是安装了oracle 10g inistant client,40多M吧。
安装后PL/SQL可以用了,但是查询出记录里面的中文却是乱码。折腾了好久才找出解决方法:
设置环境变量:NLS_LANG,值为Oracle数据库设置的字符集,在我的系统里面设置是:SIMPLIFIED CHINESE_CHINA.ZHS16GBK ......
原文地址oracle lock
1用Perl TK模块 查询DB中的LOCK
use DBI;
use Tkx;
use DBD::Oracle qw(:ora_session_modes);
$mw = Tkx::widget->new(”.”);
$mw->g_wm_title(”Oracle Lock”);
$content = $mw->new_ttk__frame(-padding => “5 5 12 0″);
$content->g_grid ......
sqlplus sys/password as sysdba;系统管理员登录
alter user scott account unlock; 更改用户
desc (表名)
select * from (table name);
select distinct ename from emp;
select ename,sal from emp;
select ename,sal*12 'annual_sal' from emp;
select ename,sal from emp where sal>1000;
select ......