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

我有个循环是这样的forxxin(selectcol_A,col_BfromtableAwherecol_C=C_value)loopbegin......endendl... 我有个循环 是这样的 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是传进来的参数 ,我调试看了 有值 也没有问题 展开
 我来答
百度网友faadf46
高粉答主

2019-07-25 · 说的都是干货,快来关注
知道答主
回答量:4556
采纳率:0%
帮助的人:66.9万
展开全部

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;。

次次次蛋黄米亚
高粉答主

2019-07-18 · 说的都是干货,快来关注
知道小有建树答主
回答量:7778
采纳率:100%
帮助的人:203万
展开全部

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

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

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

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

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
正则笔记
2019-12-06 · TA获得超过9320个赞
知道答主
回答量:224
采纳率:0%
帮助的人:4.9万
展开全部

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

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

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

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

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2019-08-27 · TA获得超过11.9万个赞
知道小有建树答主
回答量:109
采纳率:0%
帮助的人:4.4万
展开全部

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标签页查看结果,如图所示,这样就可以解决问题了。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大野瘦子
高粉答主

2019-11-17 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:32.1万
展开全部

这样使用的:

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语句直接帮做了游标的打开关闭,以及判断工作,所以比较常用。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式