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会报错, ...
随机推荐
- JQuery validate.js 在ajax提交form时如何触发
在使用jquery validate.js 插件时,发现,如果是用onclick事件捕获提交按钮的动作,并且ajax动态提交form,验证不会被触发,而是直接提交了form. 后来发现,需要手动调用该 ...
- 修改XML指定标签的内容
修改Xml指定标签内容(我这是去掉指定标签内容的空格) 其实就是个很简单的方法,需要的盆友直接拿走. test.xml <?xml version="1.0" encodin ...
- 张艾迪(创始人): 整合全新的UIW.AD概念
The World No.1 Girl :Eidyzhang The World No.1 Internet Girl :Eidyzhang AOOOiA.global Founder :Eidyzh ...
- PLL输出怎么不能配置成我想要的时钟
如下图,我的clk_out7想配置成160M,十几输出变为了150M
- MVC5 + EF6 完整入门教程三:EF来了
期待已久的EF终于来了 学完本篇文章,你将会掌握基于EF数据模型的完整开发流程. 本次将会完成EF数据模型的搭建和使用. 基于这个模型,将之前的示例添加数据库查询验证功能. 文章提纲 概述 & ...
- mysql 安装以及运行
目录: http://www.fenby.com/courses/mysqlke-cheng-lian-zai/ 1.下载 2.配置 3.启动服务器 4.启用客户端并修改用户信息 1.mysql的下载 ...
- 非对称加密算法-RSA
注意:本节内容主要参考自<Java加密与解密的艺术(第2版)>第8章“高等加密算法--非对称加密算法” 12.1.RSA(最经典的非对称加密算法) 特点: 使用一套密钥即可完成加解密(与D ...
- 矩阵k次幂 采用三重循环
#include<iostream> using namespace std; int main() { int n,k; ][],b[][],c[][]; while(cin>&g ...
- Practical Malware Analysis里有关inetsim\APATEDNS
以前从未接触过linux,碰到了许多问题,按步骤: 1\安装VMWARE,安装ubuntu16.04 问题1:之前装的是VM10,装完后没有安装VMTOOLS,我点安装 VMTOOLS,它弹出“简易安 ...
- Struts2 Result 类型和对应的用法详解