急求informix存储过程

wwq103 2008-03-31 10:53:01
现因工作需要在informix中写个存储过程,但是我以前只在sybase中写过,不熟悉informix的语法,请大家帮忙写一下,要求实现如下功能:table1和table2是结构完全相同的两张表,要求存储过程实现从table2中取出blbz1='4'(其中blbz1是个字符型字段)的数据,并将得到的数据逐条按照table1的一个唯一索引的字段去table1中查找jfbz字段的值,如果jfbz为0就删除table1中的记录,然后将table2中的记录插入table1,并将table2中该记录的blbz1更新为'5',如果jfbz不为0就处理table1数据,直接更新table2中的blbz1为'6'就可以了。
...全文
260 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwq103 2008-04-07
  • 打赏
  • 举报
回复
谢谢大家,已经搞定了,结帖给分
Mysap-gwg 2008-04-01
  • 打赏
  • 举报
回复
DROP PROCEDURE "informix".sp_bo1h110;

CREATE PROCEDURE "informix".sp_bo1h110( as_gubun char(1), as_year char(04)) -- 参数自己定义




returning char(12), 返回参数自己定义
date ,
char(1)

;

------------------------------------------------------------------------------------------------------
define ws_badjno char(12); 变量自己定义
define wd_baddat date;
define ws_baduh char(1);
define wde_badqty decimal(12,0);
define wde_todoqt decimal(12,0);

SET OPTIMIZATION LOW;
--set debugfile to '/usr1/informix/aaa1.txt';
--trace on;


foreach

select 1,2,3,............... --字段名字
into l1,l2,l3 ............. --变量名字
from table2
where blbzl = '4;

select jgbz
into ls_jgbz ---变量名字
from table1
wherer -字段名字 = --变量名字

if ls_jgbz =0 then
delete from table1 where ------
insert into table1 () -- table2中的值

update table2 set blbzl =5 where ----------
else
update table2 set blbzl =6 where ----------

end foreach



END PROCEDURE
; ;
只是个思路,
wwq103 2008-03-31
  • 打赏
  • 举报
回复
具体表名,字段名可随便写,我主要是看存储过程的语法和其中游标的语法
cloudflashes 2008-03-31
  • 打赏
  • 举报
回复
Informix的存储过程中不能直接使用游标。

可用foreach select * from table1来做。

1,195

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 Informix
社区管理员
  • Informix社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧