我们在Oracle存储过程中需要遍历一张表,应该怎样做。我想大多少的人第一个念头就是Cursor。

  比如:

  create or replace procedure StudyCursor(

  resulst out integer

  ) is

  v_tablename varchar(30);

  v_tabletype varchar(11);

  cursor mycursor is select * from cat;

  begin

  open mycursor;

  loop

  fetch mycursor into v_tablename,v_tabletype;

  null; --you can use tablename and v_tabletype

  end loop;

  close mycursor;

  end StudyCursor;

  最近在看代码是,发现其实我们还有一个更方便的方法就是使用for in loop … end loop

  create or replace procedure StudyFor(

  resulst out integer

  ) is

  begin

  for emm in(select * from cat) loop

  null; --you can use emm.table_name and emm.table_type

  end loop;

  return ;

  end StudyFor;

  是不是更方便,我要使用的查询结果,只需使用emm.table_name和emm.table_type即可。

  查找了Oracle的官方文档,似乎没有看见for loop的此种用法。确实很奇妙,只是不知道oracle内部具体的实现方法。

oracle for loop的更多相关文章

  1. oracle的loop

    oracle的loop等循环语句的几个用法小例子 --loop循环用法 (输出1到10) ) :; begin loop v_num :; ; --上面退出循环也可以用下面3行 /* if(v_num ...

  2. oracle for loop循环以及游标循环

    1. for in loop形式 DECLARE    CURSOR c_sal IS SELECT employee_id, first_name || last_name ename, salar ...

  3. oracle的loop等循环语句的几个用法小例子

    --loop循环用法 (输出1到10) declare v_num number(2) := 0; begin loop v_num := v_num + 1; exit when v_num > ...

  4. oracle的loop等循环语句的几个用法小例子[转]

    --loop循环用法 (输出1到10) declare v_num number(2) := 0; begin loop v_num := v_num + 1; exit when v_num > ...

  5. oracle for loop 简单

    declare i NUMBER; begin loop INSERT INTO emp VALUES(i,i); end LOOP; END;

  6. oracle中的loop与while循环

    Oracle中loop语句会先执行一次循环,然后再判断“exit when”关键字后面的条件表达式的值是true还是false,如果是true,那么将退出循环,否则继续循环. LOOP循环 语法如下l ...

  7. Oracle中三种循环(For、While、Loop)

    1.ORACLE中的GOTO用法 DECLARE x number; BEGIN x := 9; <<repeat_loop>> --循环点 x := x - 1; DBMS_ ...

  8. Oracle中四种循环(GOTO、For、While、Loop)

    DECLARE x number; BEGIN x:=9; <<repeat_loop>> --循环点 x:=x-1; DBMS_OUTPUT.PUT_LINE(X); IF ...

  9. Oracle中三种循环(For、While、Loop)案例

    1.ORACLE中的FOR循环用法(九九乘法表) declare i ; j ; begin .. loop ..i loop Dbms_Output.put(i||'*'||j||'='||i*j) ...

随机推荐

  1. 【HDOJ6641】TDL(数论)

    题意:定义f(n,m)是第m小的数字x,使得x>n且gcd(x,n)=1 已知 求最小的n使得 k<=1e18,m<=1e2 思路: #include<bits/stdc++. ...

  2. 循序渐进实现仿QQ界面(三):界面调色与控件自绘

    本篇讲述如何进行界面调色.界面调色一般有两种方法,调色板和HSL色彩变换.调色板局限于256色,这里不采用,因此用HSL色彩变换实现.首先要了解一下什么是HSL色彩空间,完整且详尽的知识请到维基百科去 ...

  3. Largest Point

    Largest Point Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tot ...

  4. win7系统开机启动出现蓝屏,提示BAD_SYSTEM_CONFIG_INFO

    因为我在msconfig->引导->高级选项中将最大内存勾选,最大内存勾选后是4096MB,但是在点击确定按钮后,会自动变成0MB(点击确定按钮后再点击高级选项),导致系统无法识别内存,开 ...

  5. GoldenGate—日常管理

    Classic Replicat Mode (一)源端和目标端新增加复制表 根据需求将生产库中PROCESS_LOG表通过ogg同步到测试库中:操作步骤: 当GoldenGate仅打开DML复制时,源 ...

  6. p5341 [TJOI2019]甲苯先生和大中锋的字符串

    分析 TJOI白给题 建出sam,对于每个点如果它的子树siz和等于k 那么对于这个满足的点它有贡献的长度一定是一个连续区间 直接差分即可 代码 #include<bits/stdc++.h&g ...

  7. ruby file

    E:/AutoTHCN/lib/report/generate_report/web14/20190516/LoanTool.636936123857869205_190516_140514.xlsx ...

  8. python杂谈

    1.for循环过界保护 例如: a=len([1,2,3]) for i in range(a): for j in range(i+1:a) print(i,j) 不会报错 2.python集合和列 ...

  9. Oracle 11g修改默认端口1521为其他值

    1.修改listener.ora 打开文件D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora,修改PORT ...

  10. Delphi中Tlist实例

    http://blog.163.com/jiandande3218@126/blog/static/74728469201132721428194/ Delphi中Tlist实例 2011-04-27 ...