设为首页 加入收藏

TOP

sql&plugs(五)
2014-11-24 02:52:24 来源: 作者: 【 】 浏览:18
Tags:sql&plugs
VARCHAR2 有相同的大小。并用于于存放National Language Support (NLS)数据,Oracle 允许以本地语言存放数据和查询数据。

如果将列名声明成NCHAR、NVARCHAR2这样的类型,则insert和select 等语句中的具体值前加N,不能直接按照普通字符类型进行操作。看下面例子:

SQL> create table nchar_tst(name nchar(6),addr nvarchar2(16),sal number(9,2));

表已创建。

SQL> insert into nchar_tst values(N'赵元杰',N'北京市海淀区',9999.99);

已创建1 行。

SQL> select * from nchar_tst where name like N'赵%';

NAME ADDR SAL

------ ---------------- ----------

赵元杰 北京市海淀区9999.99

SQL> select * from nchar_tst where name like '赵%';

select * from nchar_tst where name like '赵%'

*

ERROR 位于第1 行:

ORA-12704: 字符集不匹配.

提示:虽然Oracle可以使用nchar, nvarchar2 类型来存放字符数据,但建议设计者不要使用NCHAR和NVARCHAR2。因为CHAR和VARCHAR2就能存放汉字。

NUMBER(

,)

是数据的整数部分,是数据的精度(即小数)部分,注意,部分可以表示负的精度。用可以表示从小数点往右或往左保留多少位。如下表:

实际值 数据类型 存储值

1234567.89 Number 1234567.89

1234567.89 Number(8) 1234568

1234567.89 Number(6) 出错

1234567.89 Number(9,1) 1234567.9

1234567.89 Number(9,3) 出错

1234567.89 Number(7,2) 出错

1234567.89 Number(5,-2) 1234600

1234511.89 Number(5,-2) 1234500

1234567.89 Number(5,-4) 1230000

1234567.89 Number(*,1) 1234567.9

Sal number(7,2), --表示5位整数,2位小数.

DATE

Oracle 的日期型用7个字节表示,每个日期型包含如下内容:

l Century (世纪)

l Year (年)

l Month(月)

l Day (天)

l Hour (小时)

l Minute (分)

l Second (秒)

日期型字段有下面特点:

l 日期型字段的插入和更新可以数据型或字符并带to_date 函数说明即可。

l 缺省的日期格式有NLS_DATE_FORMAT参数控制,它的缺省格式为DD-MON-YY。

l 缺省的时间是夜里00:00:00 (即0点0分0秒)。

l sysdate返回的是服务器的时间,见下面例子。

l 日期格式的显示可以设置,见下面例子。

l 日期型可以运算,见下面例子。见下面例子。

l 世纪用cc 表示;年用yyyy表示,月用mm表示,日用dd表示,小时用hh24表示,分用mi表示,秒用ss表示。

例子:

SQL> create table save_info(per_id varchar2(20),name varchar2(20),tran_date date,

2 tran_val number(12,2));

表已创建。

SQL> insert into save_info values ( '110105540609811','赵元杰',

2 to_date('2001.06.18','yyyy.mm.dd'),12345.66);

已创建1 行。

SQL> select * from save_info;

PER_ID NAME TRAN_DATE TRAN_VAL

-------------------- -------------------- ---------- ----------

110105540609811 赵元杰18-6月-01 1234.66

SQL> select per_id,name,to_char(tran_date,'yyyy/mm/dd'),tran_val from save_info;

PER_ID NAME TO_CHAR(TR TRAN_VAL

-------------------- -------------------- ---------- ----------

110105540609811 赵元杰2001/06/18 12345.66

SQL> show parameter nls_date_format

NAME TYPE VALUE

------------------------------------ ------- ------------------------------

nls_date_format string

SQL> alter session set nls_date_format=

2 '"公元"yyyy"年"mm"月"dd"日"';

会话已更改。

SQL> select sysdate from dual;

SYSDATE

------------------

公元2001年05月18日

SQL> select to_char(sysdate,'cc yyyy.mm.dd') from dual;

TO_CHAR(SYSDA

-------------

21 2001.05.18

关于日期型的使用方法详细请参考《Oracle8i National Language Support Guide》。

BLOB

大二进制对象,每条记录可存储达4GB的数据,详细见后面章节。

CLOB

大字符对象,每条记录可存储达4GB的数据,详细见后面章节。

BFILE

外部二进制文件,每条记录可存储达4GB的数据(与OS有关),详细见后面章节。

RAW

非结构的二进制数据,这些数据不被数据库系统解释。RAW可以存储达2,000字节。

LONGRAW

大的二进制类型数据,LONGRAW是非结构的二进制数据,这些数据不被数据库系统解释。LONGRAW可以存储达2GB字节。LONGRAW不能被索引,而RAW可以被索引。

ROWID

ROWID在Oracle数据库中是一个虚的列,即系统用的特殊的列,不是我们建立的列。用于对数据库中的每条记录进行定位。详细见“Rowid的使用”章节。

UROWID

UROWID 是Universal ROWID 的意思。即全球ROWID,它支持逻辑和物理ROWID,也作为外部表的(通过getway 访问的非Oracle 表)的ROWID。UROWID类型可以存储所有的ROWID类型的数据。

%TYPE类型的匹配:

books_printed number(6);

books_sold books_printed%TYPE;

books_sold的数据类型与book_printed的类型一致;

( %TYPE类型 在PL/SQL

首页 上一页 2 3 4 5 6 下一页 尾页 5/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇存储过程或视图的字符串查询 下一篇第四章、PL/SQL基础

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Sphinx : 高性能SQL (2025-12-24 10:18:11)
·Pandas 性能优化 - (2025-12-24 10:18:08)
·MySQL 索引 - 菜鸟教 (2025-12-24 10:18:06)
·Shell 基本运算符 - (2025-12-24 09:52:56)
·Shell 函数 | 菜鸟教 (2025-12-24 09:52:54)