三、标准数据类型
VARCHAR2() --改变长度
NUMBER(精度,小数) --长度
DATE --日期类型
CHAR(长度) --固定的长度 长度不够用空格代替
TIMESTAMP --日期类型自动补齐时间
LONG --变长字符串的数据类型
BOOLEAN --TRUE、FALSE、NULL
BINARY_INTEGER --附加的数据类型
PLS_INTEGER --附加的数据类型 没上面快
NATURAL --BINARY的子类 表示从0开始的自然数
NATURALN --与NATURAL一样,但是要求变量值不能为NULL
POSITIVE --BINARY的子类 正整数
POSITIVEN --与POSITVE一样但是不能为null
REAL -- 18位精度的浮点数
INT,INTEGER,SMALLINT--NUMBERDE的子类型,38位精度整数
SIGNTYPE --附加数据类型 值有1、-1、0
STRING --与VARCHAR2相同
四、属性数据类型
一、行类型:
%ROWTYPE --引用数据的一行作为数据类型
DECLARE
myemp emp%ROWTYPE;--引用emp行作为数据类型
BEGIN
SELECT * INTO myemp FROM emp WHERE rownum=1; --将emp表的一行数据插入到行变量myemp中
dbms_output.put_line(myemp.ename); --输出时要选择输出的列
END;
二、列类型:
1、%type --引用某个变量或者列类型作为某变量的数据类型
DECLARE
myemp emp.ename%type;--声明一个列对象或者某个变量的对象
BEGIN
SELECT ename INTO myemp FROM emp WHERE rownum=1;--返回一列插入到ename
dbms_output.put_line(myemp);
END;
2、实例
DECLARE
sall emp.sal%TYPE;
mysal number(4):=3000; --创建类型并赋值3000 注意:如果这里没有赋值则totalsa是null,数字加上null等于null
totalsa mysal%TYPE; --使用mysal的类型
BEGIN
SELECT sal INTO sall from emp where rownum=1; --将emp表 empno=12的人的sal插入到变量sal中去
totalsa:=sall+mysal; --变量sal加上变量mysal
dbms_output.put_line(totalsa); --输出变量totalsal的值
dbms_output.put_line(sall);
END;
三、定义由列组成的类型
1、语法:type 类型名 is record(变量 类型)
declare
type myrec is record( --将所有的列类型合成到一起组成的类型 不能放行类型
name emp.ename%type,
sal emp.sal%type
);
rec myrec;--声明一个变量 给其组成的类型
begin
select ename,sal into rec from emp where rownum=1; --按顺序插入
dbms_output.put_line(rec.name);
dbms_output.put_line(rec.sal);
end;