oracle存储过程中循环for in是如何使用的

我有个循环 是这样的 for xx in (select col_A,col_B from tableA where col_C=C_value) loopbegin......end end loop;然后我测试了下 in里面的select 语句后面where 的 条件没起作用,就是说带条件 就查出5天数据,不带条件 好几百条数据。结果循环就是按好几百循环的。这个是什么问题 C_value是传进来的参数 ,我调试看了 有值 也没有问题

1、首先去下载oracleclient客户端工具。

2、打开PLSQL,点取消进去,然后弹出PLSQL主界面,找到菜单栏的tools选择属性preferences进去。

3、弹出如下界面,配置oracleclient,配置好两个设置项,点apply,然后点ok,关闭PLSQL,重启PLSQL。

4、如下图所示,在哪个目录就对应的去找就可以了。

5、重启PLSQL进入到登录界面,输入相关信息,用户名密码,以及连接信息,连接信息:可以是ip:1521/实例名,也可以是network/admin目录下的tnsname.ora中配置的TNS别名。

6、连接进去成功之后,可以随便写一个语句查查,是否正常,select * from dual;。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-07-18

1、首先需要在oracle中根据下图的代码编写存储过程的整体结构。

2、之后需要进行定义游标代码编写,根据下图的代码继续在第一步的下方输入。

3、之后继续根据下图代码编写for循环。

4、最后进行测试运行:直接点击【DBMS Output】标签进行结果的查看。

本回答被网友采纳
第2个回答  2019-12-06

1、首先编写存储过程的整体结构,如下图所示定义变量。

2、定义变量后定义游标,begin,select sysdate into v_date from dual,end test_proc。

3、然后编写for循环,游标for循环开始,然后为临时变量名,任意起,输出某个字段,使用变量名.列名即可,最后游标for循环结束。

4、测试运行,点击DBMS Output标签页查,如下图没有问题。

本回答被网友采纳
第3个回答  2019-08-27

1、定义带参数的游标:

cursor cur(v_codetype ldcode.Codetype%TYPE) is

select * from ldcode where codetype = v_codetype; --定义游标

定义游标格式:

cursor 游标名称(变量定义) is 查询语句;

2、编写for循环部分:

--游标for循环开始

for temp in cur('llmedfeetype') loop

--temp为临时变量名,自己任意起

--cur('llmedfeetype')为"游标名称(传入的变量)"

Dbms_Output.put_line(temp.Code); --输出某个字段,使用"变量名.列名"即可。

end loop;

--游标for循环结束

3、最后,点击DBMS Output标签页查看结果,如图所示,这样就可以解决问题了。

本回答被网友采纳
第4个回答  2019-11-17

这样使用的:

for xx in (select 语句) 这是隐式游标,这个结构中不能带参数,或者说普通的游标,隐式或显式的都不能带参数,使用参数游标或引用(动态)游标。

例如:

declare

cursor cur(C_value number) is select col_A,col_B from tableA where col_C=C_value

;

begin

    for xx in cur loop

    --处理

    end loop;

end

扩展资料:

注意事项

使用for循环实现

declare

  cursor cur is 

   select * from tablename;

   aw_row  tablename%rowtype;

begin

   for raw_row in cur

      loop

      dbms_output.put_line('test');

end loop;

end;

for语句直接帮做了游标的打开关闭,以及判断工作,所以比较常用。

本回答被网友采纳