Postgresql存储过程.docx

上传人:scccc 文档编号:14433507 上传时间:2022-02-06 格式:DOCX 页数:6 大小:73.50KB
返回 下载 相关 举报
Postgresql存储过程.docx_第1页
第1页 / 共6页
Postgresql存储过程.docx_第2页
第2页 / 共6页
Postgresql存储过程.docx_第3页
第3页 / 共6页
Postgresql存储过程.docx_第4页
第4页 / 共6页
Postgresql存储过程.docx_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《Postgresql存储过程.docx》由会员分享,可在线阅读,更多相关《Postgresql存储过程.docx(6页珍藏版)》请在三一文库上搜索。

1、用PL/pgSQL写postgreSQL的存储过程一、存储过程结构:Create or replace function过程名(参数名参数类型,.)returns返回值类型as $body$声明变量Declare变量名变量类型;如:flag Boolean;变量赋值方式(变量名类型:二值;)如:Str text:二值;/ strtext;str:二值;Begin函数体;End;$body$Language plpgsql;二、变量类型:除了 postgresql内置的变量类型外,常用的还有RECORD,表示一条记录三、连接字符:Postgresql存储过程中的连接字符不再是+,而是使用| |。

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

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

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

5、于无条件循环。例如:LOOP一些计算EXIT WHEN count 100;CONTINUE WHEN count 0 AND gift_certificate_balance 0 LOOP-可以在这里做些计算END LOOP;WHILE NOT BOOLEAN_expression LOOP-可以在这里做些计算END LOOP;5)、FOR (整数变种)label FOR namelN REVERSE expression.expression LOOPstatementsEND LOOP labal;这种形式的FOR对一定范围的整数数值进行迭代的循环。变量name会自 动定义为intege

6、r类型并且只在循环里存在。给出范围上下界的两个表达式在进 入循环的时候计算一次。迭代步进值总是为1,但如果声明了 REVERSE就是一些整数FOR循环的例子:FOR i IN 1.10 LOOP 表示 1 循环到 10这里可以放一些表达式RAISE NOTICEi IS %; i;END LOOP;FOR i IN REVERSE 10.1 LOOP这里可以放一些表达式END LOOP;如果下界大于上界(或者是在REVERSE情况下是小于),那么循环体将完 全不被执行。而且不会抛出任何错误。3、异常捕获EXCEPTIONWHEN错误码(如:STRING_DATA_RIGHT_TRUNCATION:字串数据右边被截断)THEN/*后台打印错误信息*/RAISE NOTICE错吴信息;附件含有实例代码 5 / 6

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1