一、存储过程概述
存储过程是一个用户定义的函数,由存储过程语句(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学习总结 游标的使用 FOREACH 存储过程 异常处理
13.2 生成与使用存储过程 13.3 存储过程语言 13.4 存储过程的特殊考虑 13.5 处理存储过程错误 13.6 触发器 13.7 使用语法符号 13.8 更多信息 13.9 informix与其他参考资料 第14章 数据库权限 14.1...
通过对源码的抽取,将函数,存储过程,以及它们的调用关系和数据操作形式以报告的形式呈现给使用者。 通过对函数、变量、宏、类型成员、表、列和存储过程的名称进行订正,使报告更加简洁、明了,使源码阅读、分析、...
第十一课Postgresql引擎开发深入:执行优化器实现分析,增加兼容其它数据库存储过程功能。第十二课Postgresql引擎开发深入:数据库数据字典实现分析,扩展系统性能动态视图。第十三课发布数据库引擎:扩展并运行...
系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性。Sybase通常与SybaseSQLAnywhere用于客户机/服务器环境,前者作为服务器数据库,后者为客户机数据库,采用该公司研制的...
存储过程.如:触发器,此软件oracle不带,需要单独安装。,5)oracle的企业管理器(oem,oracle,enterprise,manager),位置在,,开始,程序,oracle,oracle,oraclehome90,enterprise,manager,console, ,,即可启动oracle的...
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网络...
数据挖掘(DM)是一种决策支持过程,它主要基于AI、机器学习、统计学等技术, 高度自动化地分析企业原有的数据,做出归纳性的推理,从中挖掘出潜在的模式,预测 客户的行为,帮助企业的决策者调整市场策略,减少...