Postgresql存储过程_第1页
Postgresql存储过程_第2页
Postgresql存储过程_第3页
Postgresql存储过程_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用 PL/pgSQL 写 postgreSQL 的存储过程一、存储过程结构:Createorreplacefunction 过程名(参数名参数类型,.)returns 返回值类型$body$/声明变量Declare变量名变量类型;如:flagBoolean;变量赋值方式(变量名类型:=值;)如:Strtext:=值;/strtext;str:=K;Begin函数体;End;$body$Languageplpgsql;二、变量类型:除了 postgresql 内置的变量类型外,常用的还有 RECORD,表示一条记录三、连接字符:Postgresql 存储过程中的连接字符不再是“+”,而是使用“|

2、四、控制结构:1、if 条件(五种形式)IF.THENIF.THEN.ELSEIF.THEN.ELSEIFIF.THEN.ELSIF.THEN.ELSEIF.THEN.ELSEIF.THEN.ELSEas(注:ELSEIF 是 ELSIF 的别名)2、循环使用 LOOPEXIT,CONTINU,EWHILE和 FOR语句,可以控制 PL/pgSQL函数重复一系列命令。1)、LOOPLOOPstatementsENDLOOPlabel;LOOP 定义一个无条件的循环,无限循环,直到由 EXIT 或者 RETUR 语句终止。可选的label可以由 EXIT 和 CONTINUE 语句使用,用于在嵌

3、套循环中声明应该应用于哪一层循环。2)、EXITEXITlabelWHENexpression;如果没有给出label,那么退出最内层的循环,然后执行跟在 ENDLOOP 后面的语句。如果给出label,那么它必须是当前或者更高层的嵌套循环块或者语句块的标签。然后该命名块或者循环就会终止,而控制落到对应循环/块的 END 语句后面的语句上。如果声明了 WHEN 循环退出只有在expression为真的时候才发生,否则控制会落到 EXIT 后面的语句上。EXIT 可以用于在所有的循环类型中,它并不仅仅限制于在无条件循环中使用。在和 BEGIN 块一起使用的时候,EXIT 把控制交给块结束后的下一

4、个语句。例如:Loop 循环If,then 条件判断Exit;条件成立,则退出循环。Endif;Endloop;3)、CONTINUECONTINUElabelWHENexpression;如果没有给出 label,那么就开始最内层的循环的下一次执行。也就是说,控制传递回给循环控制表达式(如果有),然后重新计算循环体。如果出现了label,它声明即将继续执行的循环的标签。如果声明了 WHEN 那么循环的下一次执行只有在 expression 为真的情况下才进行。否则,控制传递给 CONTINUE 后面的语句。CONTINUED 以用于所有类型的循环;它并不仅仅限于无条件循环。例如:LOOP一些

5、计算EXITWHENcount100;CONTINUEWHENcount50;一些在 count 数值在50.100里面时候的计算ENDLOOP4)、WHILEWHILEexpressionLOOPstatementsENDLOOPlabel;只要条件表达式为真,WHILE 语句就会不停在一系列语句上进行循环.条件是在每次进入循环体的时候检查的.例如:WHILEamount_owed0ANDgift_certificate_balance0LOOP-可以在这里做些计算ENDLOOP;WHILENOTBOOLEAN_expressionLOOP-可以在这里做些计算ENDLOOP;5)、FOR(整

6、数变种)FORnamelNREVERSEexpression.expressionLOOPstatementsENDLOOPlabal;这种形式的 FOR 寸一定范围的整数数值进行迭代的循环。变量name会自动定义为 integer 类型并且只在循环里存在。给出范围上下界的两个表达式在进入循环的时候计算一次。迭代步进值总是为 1,但如果声明了 REVERS 就是-1。一些整数 FOR 循环的例子:FORiIN1.10LOOP 表示 1 循环到 10这里可以放一些表达式RAISENOTICEiIS%,i;ENDLOOP;FORiINREVERSE10.1LOOP这里可以放一些表达式ENDLOOP;如果下界大于上界(或者是在 REVERSE 情况下是小于),那么循环体将完全不被执行。而且不会抛出任何错误。3、异常捕获E

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论