db2教程 oracle存储过程中循环forin是如何使用的?
oracle存储过程中循环forin是如何使用的?
1、定义带参数的游标:cursor cur(v_codetype ldcode.Codetype%TYPE) isselect * 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标签页查看结果,如图所示,这样就可以解决问题了。
db2两张表关联更新?
以防关联不到的被更新为null,比较完整的写法为:update a set a.a1=(select b1 from b where b.b2=a.a2)where exists(select 1 from b where b.b2=a.a2)为了防止多值(b2有重复值)更新不成功,可以写存储过程用for循环:for t as select b1,b2 from bdo update aset a.a1=t.b1where a.a2=t.b2end for
DB2存储过程调用存储过程?
db2的存储过程也可以执行动态SQL,你可以把"001","002" 档次一个参数传进存储过程,然后声明一个变量:
create or replace procedure test(in in_where varchar(100)) --创建一个存储过程test,并可以传入字符串作为参数declare v_sql varchar(512) set v_sql = " delete from table1 where field1 in (" concat in_where concat ") " -- 这里是把传进来的where语句拼起来execute immediate v_sql --这里是把语句进行执行--------- 类似以上这样的存储过程,使用以下的放在进行执行即可:call test( " ""001"",""002"" ") --内容中的一个‘ 需要使用 ’‘ 进行转义
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。