转载自http://zhenghaoju700.blog.163.com/blog/static/13585951820116782843994/

先安装一个PostgreSQL(见补充知识)

比较Oracle PL/SQL

PL/SQL 中有 dbms_output.put_line("This is a log"); 可以进行简单的调试

当然我们PostgreSQL 也有相应的函数 RAISE NOTICE 'This is a log %', param;

% 占位符 param 替换的值

RAISE 还有其他级别 DEBUG,LOG,INFO,EXCEPTION

可以在配置文件中配置它们 postgresql.conf 中的 client_min_messages 和 log_min_messages

RAISE EXCEPTION 会暂停函数的运行,其他级别默认应该是显示到客户端。

 

举一个简单的例子吧

举例之前 首先确定自己的数据库有没有安装 plpgsql

select * from pg_language;

如果没有的话 

create language plpgsql;

简单例子:

CREATE OR REPLACE FUNCTION perctl.testraise()
RETURNS void AS
$$
declare
begin
raise notice '===============';
while(2>1) loop
raise notice '====================================================================================================================================================================================';
raise notice '====================================================================================================================================================================================';
raise notice '====================================================================================================================================================================================';
raise notice '====================================================================================================================================================================================';
raise notice '====================================================================================================================================================================================';
raise notice '====================================================================================================================================================================================';
raise notice '====================================================================================================================================================================================';
raise notice '====================================================================================================================================================================================';
raise notice '====================================================================================================================================================================================';
raise notice '====================================================================================================================================================================================';
end loop;
raise log '===============';
end;
$$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION perctl.fx_test_outofmemory_1()
OWNER TO root;

测试一下

select TESTRAISE('this is a message');

为什么只有 Notice 和 INFO 信息呢?

通过 find / -name  postgresql 查找postgresql 安装目录

hjzheng@ubuntu:/etc/postgresql/8.4/main$ pwd

/etc/postgresql/8.4/main

在etc下查看配置文件  vim postgresql.conf 

看到客户端最小显示级别是NOTICE 所以必须大于Notice 才显示 这就是log为什么没有显示

DEBUG 没显示 是因为它们只有DEBUG(1-5)

这样就可以放心调试了!!!!

补充知识:

安装环境 Ubuntu 11.03

1.sudo apt-get install postgreSQL

2.sudo passwd postgres 改密码 这个用户是数据库自己创建的

3.启动服务 service postgresql start

4.su  postgres

5.psql 打开交互shell

6.\l 列出所有数据库

参考资料:

http://www.postgresonline.com/journal/archives/83-Quick-Guide-to-writing-PLPGSQL-Functions-Part-3-NOTICES,-RECURSION,-and-more.html

Postgresql存储过程调试:PostgreSQL 之 Function NOTICE的更多相关文章

  1. Postgresql 存储过程调试 1

    看来人真的有些力不从心,半个月前还很得意掌握的简单的Postgresql 存储过程的调试,一段时间没使用,做新功能就忘了! Postgresql 在开源的数据库里面算是很强悍的了,但现在就是不方便调试 ...

  2. PostgreSQL存储过程<转>

    原创文章,转载请务必将下面这段话置于文章开头处(保留超链接).本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/12/27/SQL4_存储过程_St ...

  3. PostgreSQL 存储过程/函数

    1.有用的链接 postgresql 常用小函数 Postgresql数据库的一些字符串操作函数 PostgreSQL function里面调用function PostgreSQL学习手册(函数和操 ...

  4. Mybatis调用PostgreSQL存储过程实现数组入参传递

    注:本文来源于 < Mybatis调用PostgreSQL存储过程实现数组入参传递  > 前言 项目中用到了Mybatis调用PostgreSQL存储过程(自定义函数)相关操作,由于Pos ...

  5. 调用PostgreSQL存储过程,找不到函数名的问题

    PostgreSQL的表,函数名称都是严格区分大小写的,所以在使用的时候没有注意大小写问题容易导致找不到函数名的错误,但最近两天我们发现,如果函数参数使用了自定义的数据类型,也会发生这个问题. 问题描 ...

  6. postgresql 存储过程动态更新数据

    -- 目标:动态更新表中数据 -- 老规矩上代码-----------------------------tablename 表名--feildname 字段名数组--feildvalue 字段值数组 ...

  7. cgdb调试postgresql

    之前一直用gdb调试代码,最近在搞pg的时候用了一个cgdb,体验很好,调试pg代码的时候真的很方便. 本文主要讲解在进行pg内核开发的时候,如何搭建一个环境,用cgdb方便快捷的调试postgres ...

  8. Linux+eclipse+gdb调试postgresql源码

    pg内核源码解析课上用的vs调试pg源码, VS用起来确实方便,但是配置调试环境着实有点麻烦.首先得装个windows系统,最好是xp,win7稍微麻烦点:最好使用vs05,08和10也可以,但是比0 ...

  9. clion调试postgresql

    clion怎么调试postgresql呢? clion使用cmake去编译项目的,但是大家编译postgresql用的是make.虽然项目中也有CMakeLists.txt文件,但是cmake会报错, ...

随机推荐

  1. js实现图片的大小自适应效果

    需求是传过来一个图片,根据外层div的大小自动进行缩放效果. function ShowSecondImg(v) { var rate, newX, newY,newW, newH = 0; //表示 ...

  2. 时间的处理 --java

    得到当天时间 SimpleDateFormat format = new SimpleDateFormat( "yyyy-MM-dd" ); String todayData = ...

  3. boost::spirit unicode 简用记录

    本文简单记录使用boost::spirit解析有中文关键字的字符串并执行响应动作,类似于语法分析+执行. 关键字:字符串解析 boost::spirit::qi::parse qi::unicode: ...

  4. [转] 微软源代码管理工具TFS2013安装与使用详细图文教程(Vs2013)

    这篇文章联合软件小编主要介绍了微软源代码管理工具TFS2013安装与使用图文教程,本文详细的给出了TFS2013的安装配置过程.使用教程,需要的朋友可以参考下 最近公司新开发一个项目要用微软的TFS2 ...

  5. (SenchaTouch+PhoneGap)开发笔记(2)开发环境搭建二

    一.Java环境和Android SDK  1.安装JDK和JRE JRE会在JDK安装完成后自动出现安装界面. 安装完成后,设置环境变量 JAVA_HOME    D:\Program Files\ ...

  6. c# 获取 本周、本月、本季度、本年 的开始时间或结束时间

    #region 获取 本周.本月.本季度.本年 的开始时间或结束时间 /// <summary> /// 获取结束时间 /// </summary> /// <param ...

  7. [并查集] POJ 1611 The Suspects

    The Suspects Time Limit: 1000MS   Memory Limit: 20000K Total Submissions: 35206   Accepted: 17097 De ...

  8. Web安全

    随着Web2.0.网络社交等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中,越来越多的应用都架设在Web平台上.Web业务的迅速发展吸引了黑客们的强烈关注,接踵 ...

  9. mysql 自动备份导出到sql

    创建一个sh文件 vi mysql_auto.sh写入如下代码 导出单个数据库 /www/wdlinux/mysql/bin/mysqldump -uroot -p123456 database &g ...

  10. -canOpenURL: failed for URL: "" - error: "(null)" , iOS9 App传输安全 支持http 解决方案

    -canOpenURL: failed for URL: "CamCardHDOpenAPI:*" - error: "(null)" This app is ...