`

informix 存储过程学习

阅读更多
一、存储过程概述
存储过程是一个用户定义的函数,由存储过程语句(SPL) 和一组SQL语句组成,以可以执行代码形式存储在数据库中,和表、视图、索引等一样,是数据库的一种对象。存储过程语言SPL(Stored Procedure Language),只能用在存储过程中,可以分成下面几类:

变量定义和赋值:define,let
流程控制:
分支控制:
if then
elif
else
end if;循环控制:
FOR,FOREACH,WHILE,EXIT, CONTINUE
函数调用与返回
CALL, SYSTEM ,RETURN
错误处理和调试
TRACE, ON EXCEPTION, RAISE EXCEPTION
二、存储过程建立 (一定要在dbaccess环境下)

create procedure cj()

update table1 set name = 'cc' where id=1;

end procedure; 


三、存储过程的执行(在dbvis工具和dbaccess环境下均可以操作)

execute procedure cj()

四、循环语句foreach

用 FOREACH 语句可以查询或操作一组记录
FOREACH 隐式定义并打开一个游标
三种格式
FOREACH [WITH HOLD] SELECT ... INTO 语句
        语句块
END FOREACH;
-FOREACH 游标名[WITH HOLD] FOR SELECT ... INTO 语句
        语句块
END FOREACH;
FOREACH EXECUTE PROCEDURE 存储过程名(参数...参数)
     INTO 变量[, 变量[, ...]]    语句块
END FOREACH;
FOREACH 定义的游标在以下情况下关闭:无行返回
事务提交或回滚导致非保护游标关闭
循环非正常退出(使用EXIT 或 ON EXCEPTION)

四、批处理执行

create procedure pro_foreach2()
define sid integer;

foreach select id into sid from table1 where id=1

update table1 set name = 'dsfass' where id = sid;(注意这里的分号一定要打)

end foreach;

end procedure;

4、存储过程和游标结合


create procedure pHasCursor()
define v_f1 integer;
begin
on exception
rollback work;
return;
end exception
begin work;
  foreach curt1 with hold for
  select id into v_f1 from table1
   if (v_f1= 1) then
  
    update table1 set name = 'one' where current of curt1;
    elif (v_f1 = 2) then
    update table1 set name = 'two' where current of curt1;
   end if;
  end foreach;
commit work;
end;
end procedure;
分享到:
评论

相关推荐

    informix学习总结

    informix学习总结 游标的使用 FOREACH 存储过程 异常处理

    informix 实用大全

    13.2 生成与使用存储过程 13.3 存储过程语言 13.4 存储过程的特殊考虑 13.5 处理存储过程错误 13.6 触发器 13.7 使用语法符号 13.8 更多信息 13.9 informix与其他参考资料 第14章 数据库权限 14.1...

    程序逻辑抽取器-c/c++/esql/oracle/informix/mysql代码分析、查看工具

    通过对源码的抽取,将函数,存储过程,以及它们的调用关系和数据操作形式以报告的形式呈现给使用者。 通过对函数、变量、宏、类型成员、表、列和存储过程的名称进行订正,使报告更加简洁、明了,使源码阅读、分析、...

    炼数成金深度学习PostgreSQL.txt

    第十一课Postgresql引擎开发深入:执行优化器实现分析,增加兼容其它数据库存储过程功能。第十二课Postgresql引擎开发深入:数据库数据字典实现分析,扩展系统性能动态视图。第十三课发布数据库引擎:扩展并运行...

    数据库学习基础之名词解释

    系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性。Sybase通常与SybaseSQLAnywhere用于客户机/服务器环境,前者作为服务器数据库,后者为客户机数据库,采用该公司研制的...

    韩顺平oracle学习笔记

    存储过程.如:触发器,此软件oracle不带,需要单独安装。,5)oracle的企业管理器(oem,oracle,enterprise,manager),位置在,,开始,程序,oracle,oracle,oraclehome90,enterprise,manager,console, ,,即可启动oracle的...

    unix大全(涵盖了UNIX学习的方方面面)

    2.informix-4gl 7.2编写的通用菜单函数 3.Makefile工具的使用 4.vi用法集锦 5.SCO核心参数详细说明 6.SCO Unix 制作系统应急盘“Out of inodes”错误的处理 7.SCO TCP/IP网络管理---TCP/IP的启动 8.SCO TCP/IP网络...

    商业智能的概念.doc

    数据挖掘(DM)是一种决策支持过程,它主要基于AI、机器学习、统计学等技术, 高度自动化地分析企业原有的数据,做出归纳性的推理,从中挖掘出潜在的模式,预测 客户的行为,帮助企业的决策者调整市场策略,减少...

Global site tag (gtag.js) - Google Analytics