declare
sNum number(1);
sCount binary_integer := 0; --默认值0
sSal number(7, 2) := 5000.00; --7位数,精度2位
sDate date := sysdate;
sPI number(3, 2) := 3.14;
sValid boolean := true;
sName varchar2(20) := 'Jackson';
begin
dbms_output.put_line('sName:' || sName);
dbms_output.put_line('sCount:' || sCount);
dbms_output.put_line('sSal:' || sSal);
dbms_output.put_line('sDate:' || sDate);
dbms_output.put_line('sPI:' || sPI);
--dbms_output.put_line('sValid:' || sValid);
--boolean数据类型无法直接转换成varchar类型输出
dbms_output.put_line('sName:' || sName);
end;
declare
--声明类型
type type_table_emp_empno is table of emp.empno%type index by binary_integer;
--定义一个数组,数组的元素类型emp.empno%type
--emp.empno%type含义即元素类型和emp表的empno数据类型一致
--index by binary_integer保证了数组空间的自扩展
empnos type_table_emp_empno;
--定义变量(变量 类型)
begin
empnos(0) := 7369;
empnos(2) := 6789;
empnos(-1) := 6543;
dbms_output.put_line(empnos(-1));
end;
declare
--声明类型
type type_record_dept is record (
deptno dept.deptno%type,
dname dept.dname%type,
loc dept.loc%type
);
--变量定义
temp type_record_dept;
begin
temp.deptno := 56;
temp.dname := 'software';
temp.loc := 'gz';
dbms_output.put_line(temp.deptno || ' ' || temp.dname || ' ' || temp.loc);
end;
declare
temp dept%rowtype;
--temp是一个record变量,数据类型同dept表
begin
temp.deptno := 57;
temp.dname := 'it';
temp.loc := 'sz';
dbms_output.put_line(temp.deptno || ' ' || temp.dname || ' ' || temp.loc);
end;
declare
v$sal emp.sal%type;
--加上一个v$对存储过程区分变量与字段名称好习惯
v$ename emp.ename%type;
begin
select sal, ename into v$sal, v$ename from emp where rownum = 1;
--将emp表的第一条记录的sal和ename值赋给对应的变量
dbms_output.put_line(v$sal || ' ' || v$ename);
end;
declare
v_row_emp emp%rowtype;
begin
select * into v_row_emp from emp where empno = 7698;
--注意这里用的select星
dbms_output.put_line(v_row_emp.sal || ' ' || v_row_emp.ename);
end;
喜欢 (0)or分享 (0)