您的位置:首页 > 数据库 > Oracle

[跟着hsp步步学习系统]oracle培训学习集锦全360度扫描(6)自适应变量,记录型类型,游标

2013-04-08 15:01 447 查看
第三十六讲
为了让v_ename类型,更灵活,我们来用%type来自适应 如

v_ename emp.ename%type;

v_sal emp.sal%type;

此法,是与表的列相一同

2.复合变量,可以存多个变量,如同结构体

也叫:pl/sql记录。其语法是:

type 名 is record(

变量 变量的类型,

变量 变量的类型

);

快速入门

create or replace procedure pro1(v_in_empno in number)

is

--定义一个记录数据类型

type hsp_emp_record is record(

v_ename emp.ename%type;

v_sal emp.sal%type,

v_job emp.job%type

);

--定义一个变量,此变量类型是hsp_emp_record

v_emp_record hsp_emp_record;

begin

select ename,sal,job into v_emp_reord form emp where empno=empno;

dbms_output.put_line('名字'||v_emp_record.v_anme||'工资'||v.emp_record.v_sal);

end;--访问时,如同类与对象的样子

3.复合类型pl/sql表

如同java的数组,不过其下标是可变的。不是很重要

语法是

type 名 数据类型 is table of emp.sql%type index by binary_integer;

定义一个这样的变量

变量名 数据类型

4.参照变量

较重要,游标变量:通过游标可以取得返加结果的任何一行数据,可以提供共享的。

a定义游标

b打开游标

c取当前游标批向的行 fetch 游标变量 into 其他变量

d是否在末行

案例:

create or replace procedure pro1(v_in_deptno number)

is

--先定义一个游标变量类型

type hsp_emp_cursor is ref cursor;

--定义一个游标变量

v_emp_cursor hsp_emp_sursor;

v_ename emp.enme%type;

v_sal emp.sal%type;

begin

--打开一个游标

open v_emp_cursor for select ename,sal form emp;

--取此游标指向的每行数据

loop

--此语句会让游标向下走

fetch v_emp_cursor into v_ename,v_sal;

--看当前游标是否到最后

exit when v_emp_cursor%notfound;

--输出

dbms_output.out_line('用户名:'||v_ename)

end loop;

--关闭游标

close v_emp_cursor;

end;

若薪水低于二百元,则再加一百元的修改

create or replace procedure pro1(v_in_deptno number)

is

--先定义一个游标变量类型

type hsp_emp_cursor is ref cursor;

--定义一个游标变量

v_emp_cursor hsp_emp_sursor;

v_ename emp.enme%type;

v_sal emp.sal%type;

v_empno emp.empno%type;

begin

--打开一个游标

open v_emp_cursor for select ename,sal,v_empno rorm emp;

--取此游标指向的每行数据

loop

--此语句会让游标向下走

fetch v_emp_cursor into v_ename,v_sal,v_empno;

--看当前游标是否到最后

exit when v_emp_cursor%notfound;

if v_sal<200 then

update emp set sal=sal+100 where empno=v_empno;

end if;

end loop;

--关闭游标

close v_emp_cursor;

end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐