Postgresql存储过程调试:PostgreSQL 之 Function NOTICE
转载自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 列出所有数据库
参考资料:
Postgresql存储过程调试:PostgreSQL 之 Function NOTICE的更多相关文章
- Postgresql 存储过程调试 1
看来人真的有些力不从心,半个月前还很得意掌握的简单的Postgresql 存储过程的调试,一段时间没使用,做新功能就忘了! Postgresql 在开源的数据库里面算是很强悍的了,但现在就是不方便调试 ...
- PostgreSQL存储过程<转>
原创文章,转载请务必将下面这段话置于文章开头处(保留超链接).本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/12/27/SQL4_存储过程_St ...
- PostgreSQL 存储过程/函数
1.有用的链接 postgresql 常用小函数 Postgresql数据库的一些字符串操作函数 PostgreSQL function里面调用function PostgreSQL学习手册(函数和操 ...
- Mybatis调用PostgreSQL存储过程实现数组入参传递
注:本文来源于 < Mybatis调用PostgreSQL存储过程实现数组入参传递 > 前言 项目中用到了Mybatis调用PostgreSQL存储过程(自定义函数)相关操作,由于Pos ...
- 调用PostgreSQL存储过程,找不到函数名的问题
PostgreSQL的表,函数名称都是严格区分大小写的,所以在使用的时候没有注意大小写问题容易导致找不到函数名的错误,但最近两天我们发现,如果函数参数使用了自定义的数据类型,也会发生这个问题. 问题描 ...
- postgresql 存储过程动态更新数据
-- 目标:动态更新表中数据 -- 老规矩上代码-----------------------------tablename 表名--feildname 字段名数组--feildvalue 字段值数组 ...
- cgdb调试postgresql
之前一直用gdb调试代码,最近在搞pg的时候用了一个cgdb,体验很好,调试pg代码的时候真的很方便. 本文主要讲解在进行pg内核开发的时候,如何搭建一个环境,用cgdb方便快捷的调试postgres ...
- Linux+eclipse+gdb调试postgresql源码
pg内核源码解析课上用的vs调试pg源码, VS用起来确实方便,但是配置调试环境着实有点麻烦.首先得装个windows系统,最好是xp,win7稍微麻烦点:最好使用vs05,08和10也可以,但是比0 ...
- clion调试postgresql
clion怎么调试postgresql呢? clion使用cmake去编译项目的,但是大家编译postgresql用的是make.虽然项目中也有CMakeLists.txt文件,但是cmake会报错, ...
随机推荐
- 网易云音乐PC端刷曲快捷键
文章首发于szhshp的第三边境研究所(szhshp.org), 转载请注明 网易云音乐PC端刷曲快捷键 好吧我承认我特别懒 云音乐其实做的还不错,FM推荐的算法明显比虾米好. 虾米可以听的曲子都 ...
- 20145218 GDB调试汇编堆栈过程分析
GDB调试汇编堆栈过程分析 虚拟机中分析过程 输入gcc - g example.c -o example -m32指令在64位机器上产生32位汇编,但出现以下错误: 这时需要使用sudo apt-g ...
- 从mixin到new和prototype:Javascript原型机制详解
从mixin到new和prototype:Javascript原型机制详解 这是一篇markdown格式的文章,更好的阅读体验请访问我的github,移动端请访问我的博客 继承是为了实现方法的复用 ...
- 关于css
已经学了四天的css.现在对于css的了解还很肤浅,首先,我对基础的还不是很了解. 级联样式表(Cascading Style Sheet)简称“CSS”,通常又称为“风格样式表(Style Shee ...
- PDF 补丁丁 0.5.0.2078 测试版发布:不用打字,也能加书签
新增功能: 在书签编辑器加书签,不再需要自己输文本. 书签编辑器的阅读界面增加了识别文本字符的功能,可使用该功能在添加书签时识别文本. 右键点击文本内容,可插入书签(对于扫描版的文档,在激活识别引擎后 ...
- 6、HTML5表单提交和PHP环境搭建
---恢复内容开始--- 1.块元素 块元素在显示的时候,通常会以新行开始 如:<h1> <p> <ul> <!-- 块—>注释 <p>he ...
- nRF24L01芯片控制——迈向无线的第一步
nRF24L01芯片是一款专供单片机的射频收发芯片.工作于2.4GHz~2.5GHz ISM频段.融合了shockburst技术. 我先列出该芯片的硬件参数资料: 至于每个引脚的具体用途,可以参见技术 ...
- Hibernate+Oracle注解式完整实例
MyEclipse10,新建Web Project,取名hibernate, jar包 1.Cat.java (实体类) package com.hibernate.bean; import java ...
- JavaScript 字符串常用操作
JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...
- web开发学习之Http协议
web入门 请求: request 浏览器向服务器发信息 响应:response 服务器回复浏览器 一个请求发出,一定有且仅有一个响应 http协议:对浏览器客户端余服务器的数据传输规范 ht ...