欢迎来到天天文库
浏览记录
ID:6321812
大小:1.71 MB
页数:18页
时间:2018-01-10
《informix存储过程编写》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、INFORMIX存储过程开发指南周兴华2002-07-09一、开发前环境准备1、正确运行的INFORMIX数据库实例环境;2、建立能访问数据库的用户,用户需要有CONNECT和RESOURCE权限;3、建议有独立的测试数据库;4、创建存储过程的数据库需要是日志数据库;5、一个习惯的文本编辑器;(建议6、FTP工具(若文本编辑器带FTP功能,则该项不要)(建议)二、基本操作1、检查数据库状态条件:操作用户可以操作INFORMIX实例;(可以直接使用informix用户)命令:onstat-结果:该命令输出中包含”On-Line“字样,表示数据库实例启动正常;2、dbaccess
2、工具的使用工具的具体使用见附件Int1.pdf;3、根据错误号查找错误信息:在命令提示下键入命令:finderrerr_num三、编写存储过程基础1、常用数据类型类型说明char(n)n个字节的字符串1<=n<=32767,默认为1varchar(n)可变长字节的字符串,最大长度为n个字节smallint2字节整数integer4字节整数int88字节/64位平台money存储空间为:精度/2+1,decimal(m,n)存储空间为:精度/2+1,decimal(m)表示浮点数,float与具体机型相关,一般8个real4字节,smallfloatserial4字节(自动增长
3、)date日期,4字节,默认显示格式mm/dd/yyyydatetime日期时间,包含7个字段YEAR/MONTH/DAY/HOUR/MINUTE/SECOND/FRACTIONblob任意种类的二进制数据,最大4TBclob任意文本数据,最大4TBbooleanTRUE('t')/FALSE('f')/NULL2、常用操作语句1)数据定义语句:用于创建数据库并定义其结构。2)数据操作语句:用于数据库中选择、插入、更新或删除数据3)指针操作语句:用于指针操作(打开、读取、关闭一个指针)4)动态管理命令:用于动态管理运行过程中的资源。5)数据访问语句:用于确定如何访问数据(DC
4、L语句)6)数据完整性语句:用于维护数据完整性。7)查询优化信息语句:用于获取有关查询执行的信息。8)存储过程语句:用于执行和调试存储过程。9)辅助语句:Informix产品附加的SQL语句。3、常用函数:见附件:常用函数4、存储过程基本语法:1)创建存储过程createprocedureproc_name([....in_parameter_list])returningout_para_list/out_result_set;2)删除存储过程dropprocedureproc_name;3)存储过程存放存储过程信息放在sysprocedures系统目录表中,权限存放再sy
5、sprocauth表中。sysprocbody表存放每个存储过程的文本、编译伪代码、等信息。sysprocplan表存放查询执行计划和存储过程中引用的表格之间的相关性清单。4)执行存储过程。是标准SQL语言,通过数据库访问语言直接运行:executeprocedureproc_name(in_para_list)returningout_para_list/out_result_set;。在存储过程中调用;callproc_name(in_para_list)returningout_para_list/out_result_set;或letlocal_variable=my
6、_spl("argumeny_1);调用不同数据库的存储过程:executeproceduredatabase:my_sp1();调用远程数据库不同网络节点:executeproceduredatabase@sitename:my_sp1();5、其他常用语句1)分支if...then...elif...then...else...endif2)循环(三种)。forfori=1to10...endfor(没有分号)。whilewhile......endwhile(没有分号)。foreachforeachselectcol1,..intoval1,...fromtabname
7、where.......endforeach(没有分号)3)循环控制语句:。continue:条过余下的循环体,启动下一轮循环;。EXIT:终止循环;。RETURN:完成退出存储过程;。RAISEEXCEPTION:退出,在循环外捕获错误;例子:foreachselectcol1,..intoval1,...fromtabnamewhere.......if...thencontinueforeach;endif;...fori=1to10...if...thenexitfor;endif;endfor
此文档下载收益归作者所有