- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何编写INFORMIX存储过程
如何编写INFORMIX的存储过程
(2000/4/4)
一、定义及概述
存贮过程是已命名的、预编译的、典型的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
您可能关注的文档
最近下载
- 【高分刷题题库】价格鉴证师《价格鉴证案例分析》历年真题详解历年真题2019年价格鉴证师《价格鉴证案例分析》真题及详解案例分析题.pdf VIP
- 天一大联考河南省2025—2026学年(上)高三阶段性检测物理含答案.doc VIP
- 《淘宝金融合作方案》课件.ppt VIP
- 天一大联考河南省2025—2026学年(上)高三阶段性检测英语含答案.doc VIP
- 天一大联考河南省2025—2026学年(上)高三阶段性检测数学含答案.doc VIP
- 天一大联考河南省2025—2026学年(上)高三阶段性检测生物含答案.doc VIP
- 小班数学活动串木珠.pptx VIP
- 天一大联考河南省2025-2026学年(上)高二年级秋季检测生物+答案.pdf VIP
- PLC应用技术 第3版 项目五 自动送料装车控制.ppt VIP
- DBJ50_T-037-2017 烧结页岩多孔砖和空心砖砌体结构技术标准.docx VIP
原创力文档


文档评论(0)