1、标量数据类型:
标量数据类型的变量只有一个值,且内部没有分量。标量数据类型包括数字型、字符型、日期型和布尔型。字符型和数字型又有子类型,子类型至于限定的范围有关,比如NUMBER类型可以表示整数,也可以表示小数,而其子类型POSITIVE只表示正整数。
2.属性数据类型:当一个变量的值是数据库中的一行或者是数据库中的某列时,可以直接使用属性类型来声明。
a. %ROWTYPE:引用 数据库表中的一行作为数据类型,即RECORD类型(记录类型),是PL/SQL的附加类型。表示一条记录,相当于JAVA中的对象。可以使用“.”来访问记录中的属性。
eg:
declare myemp scott.emp%ROWTYPE;
begin
select * into myemp from scott.emp where empno=7369;
dbms_output.put_line(myemp.ename);
end;
b. %TYPE:引用某个 变量或者 数据库的列的类型作为某变量的数据类型。
eg:
declare
myename scott.emp.ename%TYPE;
mysal1 number(11);
mysal2 mysal1%TYPE;
begin
select sal into mysal1 from scott.emp where empno=7369;
select ename into myename from scott.emp where empno=7369;
mysal2:=mysal1;
dbms_output.put_line(myename||'的工资是'||mysal2);
end;
标量数据类型的变量只有一个值,且内部没有分量。标量数据类型包括数字型、字符型、日期型和布尔型。字符型和数字型又有子类型,子类型至于限定的范围有关,比如NUMBER类型可以表示整数,也可以表示小数,而其子类型POSITIVE只表示正整数。
2.属性数据类型:当一个变量的值是数据库中的一行或者是数据库中的某列时,可以直接使用属性类型来声明。
a. %ROWTYPE:引用 数据库表中的一行作为数据类型,即RECORD类型(记录类型),是PL/SQL的附加类型。表示一条记录,相当于JAVA中的对象。可以使用“.”来访问记录中的属性。
eg:
declare myemp scott.emp%ROWTYPE;
begin
select * into myemp from scott.emp where empno=7369;
dbms_output.put_line(myemp.ename);
end;
b. %TYPE:引用某个 变量或者 数据库的列的类型作为某变量的数据类型。
eg:
declare
myename scott.emp.ename%TYPE;
mysal1 number(11);
mysal2 mysal1%TYPE;
begin
select sal into mysal1 from scott.emp where empno=7369;
select ename into myename from scott.emp where empno=7369;
mysal2:=mysal1;
dbms_output.put_line(myename||'的工资是'||mysal2);
end;