循环($ROWTYPE,%TYPE,SQL%ROWCOUNT....)

原创 2006年05月20日 18:51:00

create or replace procedure insert_student
is
 i number:=0;
begin
   while i<=5000 loop
   insert into student values(student_seq.nextval,'bbb','d','1236547');
   i:=i+1;
   end loop;
   commit;
end;

begin
  insert_student;
end;

create or replace procedure hire_date(
empid in number
)
is
  name emp.ename%TYPE;
  sal  emp.sal%TYPE;
begin
  select ename,sal
  into name,sal
  from emp
  where empno=empid;
  dbms_output.put_line(name);
  dbms_output.put_line(sal);
end;


begin
  hire_date(7876);
end;

 create or replace procedure hire_date1(
 empid in number
 )
 is
   emp_record emp%ROWTYPE;
 begin
   select *
   into emp_record
   from emp
   where empno=empid;
   dbms_output.put_line(emp_record.ename);
   dbms_output.put_line(emp_record.sal);
   dbms_output.put_line(emp_record.empno);
 end;

create or replace procedure rowcount (
empid number
)
is
delenum number;
begin
  delete emp
  where empno=empid;
  delenum:=SQL%ROWCOUNT;
  commit;
  dbms_output.put_line(delenum);
end;

set serveroutput on;
begin
  rowcount(7369);
end;


begin
  insert into student values(student_seq.nextval,'a','m','1223565');
  savepoint a;
  insert into student values(student_seq.nextval,'a','m','1223565');
  savepoint b;
  insert into student values(student_seq.nextval,'a','m','1223565');
  savepoint c;
  insert into student values(student_seq.nextval,'a','m','1223565');
  savepoint d;
   rollback to savaepoint b;
  commit;
end;

begin
  insert into student values(0000,'a','m','1223565');
  savepoint a;
  insert into student values(1111,'a','m','1223565');
  savepoint b;
  insert into student values(2222,'a','m','1223565');
  savepoint c;
  insert into student values(3333,'a','m','1223565');
  savepoint d;
  rollback to savaepoint b;
  commit;
end;


set serveroutput on;
declare
  i number:=1;
begin
  loop
  dbms_output.put_line(i);
  i:=i+1;
  exit when i>=20;
  end loop;
end;

set serveroutput on;
declare
i number:=0;
begin
  for i in 1..10  loop
  dbms_output.put_line(i);
  end loop;
end;

set serveroutput on;
begin
  for i in 1..10  loop
  dbms_output.put_line(i);
  end loop;
end;

oracle存储过程中%type和%rowtype

oracle数据库中,存储过程中  %type和%rowtype常用来在PL/SQL中定义变量。 %type和%rowtype都是在database中定义的类型,使用%type和%...
  • TUBER727
  • TUBER727
  • 2013年08月27日 18:02
  • 3888

PL/SQL中使用%TYPE和%ROWTYPE的区别

%TYPE:          定义一个变量,其数据类型与已经定义的某个 数据变量的类型相同,或者与数据库表的某个列的数据类型 相同,这时可以使用%TYPE。         使用%TYPE 特...
  • yuzongtao
  • yuzongtao
  • 2014年11月02日 13:12
  • 2401

关于oracle的rowtype类型的对象放到for循环的问题

关于rowtype类型的对象放在游标里面进行赋值,如果某个字段上一次有值,这次没有值就会造成当前这条数据的这个字段本来没有值的会得到上次的值,所以每次在insert完以后把 rowtype对象清空eg...
  • u012516166
  • u012516166
  • 2016年01月12日 17:10
  • 1282

[Oracle]高效的PL/SQL程序设计(六)--%ROWTYPE的使用

  在PL/SQL程序中, 我们会遇到需要先从一个结果集中取出若干记录, 然后对每一条记录进行处理的情况, 最理想的做法是在一条SQL语句中完成, 但有时候因为需求的关系所以不一定能实现, 所以我们通...
  • huanghui22
  • huanghui22
  • 2007年05月24日 16:52
  • 5175

ORACLE中%TYPE和%ROWTYPE的使用

ORACLE中%TYPE和%ROWTYPE的使用
  • liangweiwei130
  • liangweiwei130
  • 2014年07月25日 14:53
  • 50679

简述%TYPE和%ROWTYPE的用法

基础概念:%TYPE概念:为了使一个变量的数据类型与另一个已经定义了的变量(尤其是表的某一列)的数据类型相一致,Oracle提供了%TYPE定义方式。当被参照的那个变量的数据类型改变了之后,这个新定义...
  • wuya814070935
  • wuya814070935
  • 2017年06月28日 11:28
  • 464

Oracle中%TYPE和%ROWTYPE说明

%type 对应一个字段 %rowtype 对应一条记录(即2个以上字段) 1. 使用%TYPE 在许多情况下,变量应该拥有与表列相同的类型。例如,emp表的name列的类型为VARCHAR...
  • qq_26222859
  • qq_26222859
  • 2016年08月20日 11:11
  • 1806

%TYPE和%ROWTYPE的区别

%TYPE和%ROWTYPE都用来定义变量类型。 %TYPE利用已经存在的数据类型来定义新的数据类型 。最常见的就是把表中西段类型 作为变量或者常量的数据类型。 比如 DECLARE...
  • c_w_d
  • c_w_d
  • 2016年10月28日 17:27
  • 740

【DB.PL/SQL】程序流程控制 —— 循环 ——LOOP, END LOOP, WHILE, FOR, CONTINUE

PL/SQL循环结构
  • robinjwong
  • robinjwong
  • 2014年10月11日 14:15
  • 3837

Oracle基本操作八:PL/SQL特殊数据类型%type %rowtype VARRAY TABLE RECORD

--%type %rowtype %type  前面必须有前缀 定义某个变量的数据与已存在的变量数据类型、某个列的数据类型相同。 好处:1.可能不知道数据表中字段的数据类型       2.数...
  • nipanlong001
  • nipanlong001
  • 2017年05月13日 21:29
  • 332
收藏助手
不良信息举报
您举报文章:循环($ROWTYPE,%TYPE,SQL%ROWCOUNT....)
举报原因:
原因补充:

(最多只允许输入30个字)