网站大量收购独家精品文档,联系QQ:2885784924

Postgresql存储过程.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Postgresql存储过程

用PL/pgSQL写postgreSQL的存储过程 一、存储过程结构: Create or replace function 过程名(参数名 参数类型,…..) returns 返回值类型 as $body$ //声明变量 Declare 变量名 变量类型; 如: flag Boolean; 变量赋值方式(变量名 类型 :=值;) 如: Str text :=值; / str text; str :=值; Begin 函数体; End; $body$ Language plpgsql; 二、变量类型 : 除了postgresql内置的变量类型外,常用的还有 RECORD ,表示一条记录 三、连接字符: Postgresql存储过程中的连接字符不再是“+”,而是使用“||”。 控制结构: 1、if 条件(五种形式) IF ... THEN IF ... THEN ... ELSE IF ... THEN ... ELSE IF IF ... THEN ... ELSIF ... THEN ... ELSE IF ... THEN ... ELSEIF ... THEN ... ELSE(注:ELSEIF 是 ELSIF 的别名) 2、循环 使用LOOP,EXIT,CONTINUE,WHILE, 和 FOR 语句,可以控制PL/pgSQL 函数重复一系列命令。 1)、LOOP [ label ] LOOP statements END LOOP [ label ]; LOOP 定义一个无条件的循环,无限循环, 直到由EXIT或者RETURN语句终止。 可选的 label 可以由 EXIT 和 CONTINUE 语句使用, 用于在嵌套循环中声明应该应用于哪一层循环。 2)、EXIT EXIT [ label ] [ WHEN expression ]; 如果没有给出 label, 那么退出最内层的循环,然后执行跟在 END LOOP 后面的语句。 如果给出 label, 那么它必须是当前或者更高层的嵌套循环块或者语句块的标签。 然后该命名块或者循环就会终止,而控制落到对应循环/块的 END 语句后面的语句上。 如果声明了WHEN,循环退出只有在 expression 为真的时候才发生, 否则控制会落到 EXIT 后面的语句上。 EXIT 可以用于在所有的循环类型中,它并不仅仅限制于在无条件循环中使用。 在和 BEGIN 块一起使用的时候,EXIT 把控制交给块结束后的下一个语句。 例如: Loop 循环 If … then 条件判断 Exit ; 条件成立,则退出循环。 End if; End loop; 3)、CONTINUE CONTINUE [ label ] [ WHEN expression ]; 如果没有给出 label,那么就开始最内层的循环的下一次执行。 也就是说,控制传递回给循环控制表达式(如果有),然后重新计算循环体。 如果出现了 label,它声明即将继续执行的循环的标签。 如果声明了 WHEN,那么循环的下一次执行只有在 expression 为真的情况下才进行。否则,控制传递给 CONTINUE 后面的语句。 CONTINUE 可以用于所有类型的循环; 它并不仅仅限于无条件循环。 例如: LOOP 一些计算 EXIT WHEN count 100; CONTINUE WHEN count 50; 一些在count 数值在 [50 .. 100] 里面时候的计算 END LOOP; 4)、WHILE [ label ] WHILE expression LOOP statements END LOOP [ label ]; 只要条件表达式为真,WHILE语句就会不停在一系列语句上进行循环. 条件是在每次进入循环体的时候检查的. 例如: WHILE amount_owed 0 AND gift_certificate_balance 0 LOOP -- 可以在这里做些计算 END LOOP; WHILE NOT BOOLEAN_expression LOOP -- 可以在这里做些计算 END LOOP; 5)、FOR (整数变种) [ label ] FOR name IN [ REVERSE ] expression .. expression LOOP statements END LOOP [ labal ]; 这种形式的FOR对一定范围的整数数值进行迭代的循环。 变量name 会自动定义为integer类型并且只在

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档