例:
第四章存储过程
简单的存储过程
;
如何创建存储过程
CREATE PROCEDURE 过程名 (参数1,参数2,……) RETURNING 类型1, 类型2, ……;--返回值类型
DEFINE 变量1 类型1; DEFINE 变量2 类型2; …… …… …… ;
SELECT 表字段1, 表字段2, …… INTO变量1, 变量2, …… FROM 表名
WHERE 条件;--与参数有关
RETURN变量1,变量2,……;
END PROCEDURE;
数据传递
向存储过程传递数据
由存储过程返回数据
第一次调用过程返
事务处理
应付发生在数据修改过程中所发生的任何类型的错误的最好办法是使用事务日志。当发生任何错误时,你能够告诉数据库服务器回滚到原来的状态。下面是前一个例子使用事务的情况:
$ begin work; /*start the transaction*/ $ delete from items
where order_num = $onum;
del_result = sqlca.sqlcode; /*save two error */ del_isamno = aqlca.sqlerrd[1];/*...code numbers */
del_rowcnt = sqlca.sqlerrd[2]; /*...and count of rows */ if (del_result < 0 ) /* some problem, */
$ rollback work; /*...put everything back */ else /*everything worked ok, */ $ commit work; /*...finish transaction */
这个例子中关键的一点是程序在结束事务前先把重要的返回值存储在SQLCA中。其原因是和所有的SQL语句一样,ROLLABCK WORK和COMMIT WORK语句在SQLCA中设置返回代码。除非事先保存好错误代码,否则在错误发生后执行ROLLBACK WORK语句会清除原来的错误代码,也就不能向用户报告了。
使用事务的优点是无论发生了什么错误,数据库都处于一种可知的、可预计的状态。关于到底修改操作完成了多少的问题不会存在,要么全部完成,要么什么都没改。
错误处理
GEGIN
ON EXCEPTION IN (-206,--table doesn’t exist
-207—column doesn’t exist )SET err_num
END EXCEPTION WITH RESUME
自定义异常
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库informix学习总结(3)在线全文阅读。
相关推荐: