INFORMIX的存储过程
INFORMIX的存储过程
存贮过程是已命名的、预编译的、典型的SQL集。数据库存贮过程使程序员能够在数据库中定义所有应用程序都可以使用的过程化SQL语句。用存贮过程来完成数据库的修改使程序员能够增强数据库的安全性、完整性并提高性能。由于存贮过程提供了条件执行,因此也可以用来执行附加商务规则。
存贮过程是SQL语句和SPL的集合。它们存放在数据库中,而SQL则被分析、优化,并产生一执行规划,永久地存放在当前库(非SYSMASTER库)的SYSPROCEDURES(过程名)、SYSPROCBODY(代码)、SYSPROCPLAN(编译后的规划)系统表中。当存贮过程被执行时,直接从库中调用优化后的代码进行运行,因此大大提高了SQL的性能、效率,极大增强了SQL语句和批处理的性能。
1、编辑存贮过程:可用通用的文本编辑器对存贮过程进行编辑,然后将文件放到主机上。注意,如果采用在DBACCESS中以批处理方式编译存贮过程,则存贮过程的源文件名的后缀必须以sql结尾,文件存放的目录必须在启动DBACCESS的目录下。
2、创建(编译)存贮过程:产生一执行规划(编译后的代码),永久存放在数据库系统表中。
存贮过程由SQL语句CREATE PROCEDURE “过程名”创建。当该语句被执行时(如在DBACCESS中按批处理运行),包含在CREATE PROCEDURE和END PROCEDURE之间的所有代码首先进行语法检查,然后被解析、优化,以过程名为标识符,存放在数据库中,等待执行。
可以用WITH LISTING IN ‘PATHNAME’关键字把编译的警告信息存放到指定的文件中。
3、执行存贮过程:调用执行规划。
用SQL语句EXECUTE PROCEDURE或SPL语句CALL/LET按存贮过程名进行调用,则库中编译好的执行规划将被调出直接运行,这样可得到较高的运行效率。
可把存贮过程当作一个函数,直接在 SELECT 语句中调用,如:
select char_ascii(‘a’) as value from dw;
SELECT customer_num, lname, get_orders(customer_num) n_orders FROM customer;
类似于表、视图、用户等,存贮过程也是一个数据库对象,其名称必须符合标识符命名规则(18字符长,以字符或_开始),也只能在当前数据库中创建,并赋予一定的权限。
SYSPRC表的内容:
prc_hashno 24
prc_chainno 0
prc_id 1505
prc_refcnt 0
prc_delete 0
prc_heapptr 388571168
prc_heapsz 1
prc_servername oncq97data
prc_dbname dev_data
prc_ownername develop
prc_name wd_proc1
当修改wd_proc1,再次创建后,SYSPRC表中查不到此存贮过程的记录;当执行存贮过程后,SYSPRC表中又出现该记录;??
二、存贮过程的总体结构
存贮过程的输入、输出参数都必须显式给出;
-- ****** 创建 TS 表 INSERT 触发器的存贮过程 ******/
-- 功能:根据TS表中处理单位的信息,在CL表中向相关单位
-- 生成一条或多条处理记录(每个单位一条记录,最多三个单位);
-- 传入参数:dw, id, status, sign
DROP PROCEDURE ti_ts_proc;
CREATE PROCEDURE ti_ts_proc
( id char(12), dw char(9), status char(1),sign char(1) )
DEFINE dd date ;
DEFINE first_dw char(3);
DEFINE second_dw char(3);
DEFINE sql_err,isam_err INT;
DEFINE error char(80);
-------- 出错处理 ----------------------
ON EXCEPTION SET sql_err,isam_err,error
TRACE SQL err no: ||sql_err;
TRACE ISAM err no: ||isam_err;
TRACE error message: ||error;
END EXCEPTION
SET DEBUG F
您可能关注的文档
- IE中的neck导出TT改善.ppt
- IE常用术语.ppt
- IE版本调整说明(简).docx
- IGBT基础.ppt
- Illustrator经典教案.doc
- IE基础知识培训(内部培训).pptx
- IMPORTANT--印刷原理.ppt
- IMU介绍.pptx
- InHand Device Networks Suite远程维护AB Logix5516S(以太网).pptx
- InHand Device Networks Suite远程维护AB Logix5516S(DF1).pptx
- 2026年食品添加剂市场需求数字化转型报告[001].docx
- 2026年边缘计算智能网络切片市场分析.docx
- 2026年物联网行业技术融合创新趋势报告.docx
- 2026年潮汐能发电站建设成本与效率提升策略.docx
- 2026年葡萄酒消费升级市场驱动报告.docx
- 2026年生物识别技术发展趋势与未来十年展望.docx
- 2025年合肥庐江县第三人民医院公开招聘劳务派遣人员12名备考历年题库带答案解析.docx
- 2026年生活电器行业细分市场与需求差异化分析报告.docx
- 2026年黄酒行业市场拓展及品牌建设研究报告.docx
- 2025年合肥庐江县第三人民医院公开招聘劳务派遣人员12名备考历年题库带答案解析.docx
原创力文档

文档评论(0)