在PG-2000DBA的培训中学到的一点是可以用pgAdmin3对存储过程进行调试。我们开发过程中用到了很多存储过程,一直苦于不能调试,只是用NOTICE打印出调试信息,非常麻烦。
开启调试,需进行以下配置:
1.编辑postgresql.conf
- shared_preload_libraries = '$libdir/plugins/plugin_debugger.so'
2.重新启动数据库restart
3.执行/opt/PostgreSQL/9.1/share/postgresql/contrib/pldbgapi.sql
如果使用postgres-9.1.2-1.i386.openscg.rpm这个rpm包安装的数据库,执行以上3个步骤即可开启调试。
- rpm -ivh postgres-9.1.2-1.i386.openscg.rpm
由于我使用以下的几个rpm包安装的postgresql9.1.2,
- rpm -ivh postgresql91-libs-9.1.2-1PGDG.rhel5.i386.rpm
- rpm -ivh postgresql91-server-9.1.2-1PGDG.rhel5.i386.rpm
- rpm -ivh postgresql91-9.1.2-1PGDG.rhel5.i386.rpm
- rpm -ivh postgresql91-contrib-9.1.2-1PGDG.rhel5.i386.rpm
实际配置过程中发现,我的环境中没有plugin_debugger.so和pldbgapi.sql这两个文件。
直接把postgres-9.1.2-1.i386.openscg.rpm包安装好的so文件拿来使用,可以配置成功。需要plugin_debugger.so,targetinfo.so和pldbgapi.so(目录可能是 /opt/postgres/9.1/lib/postgresql/)这三个so文件和pldbgapi.sql文件。
进行如下操作:
1.在postgresql9.1的lib目录(如:/usr/pgsql-9.1/lib/)新建plugins文件夹,拷贝plugin_debugger.so至plugins目录下
2.拷贝targetinfo.so和pldbgapi.so文件至postgresql9.1的lib目录下
3.编辑postgresql.conf
4.执行pldbgapi.sql,
- psql -U postgres -h localhost -f /home/pldbgapi.sql
5.重启数据库,配置完成
配置完成后,在pgAdmin3中,右键存储过程会出现调试中的选项,
点击调试,设置参数的值,开始调试,
设置断点,
在pgfoundry中有一个开源的edb-debugger插件可以用来调试PostgreSQL的PLPGSQL函数:http://pgfoundry.org/projects/edb-debugger/
from : http://blog.csdn.net/binyao02123202/article/details/7746035
分享到:
相关推荐
关于PostGreSQL中的存储过程 PostGreSQL是一个开源的数据库
让postgresql支持存储过程(函数)的调试.doc 还有edb-debugger 工具包
数据库存储过程:包括控制if,循环while/for/loop的实现
项目中用到了Mybatis调用PostgreSQL存储过程(自定义函数)相关操作,由于PostgreSQL自带数组类型,所以有一个自定义函数的入参就是一个int数组,形如: 代码如下:CREATE OR REPLACE FUNCTION “public”.”func_...
用于自动产生C#对postgreSQL开发时用到的存储过程和select 脚本
第十一课Postgresql引擎开发深入:执行优化器实现分析,增加兼容其它数据库存储过程功能。第十二课Postgresql引擎开发深入:数据库数据字典实现分析,扩展系统性能动态视图。第十三课发布数据库引擎:扩展并运行...
程序正在写入控制台进行调试我在本地主机上运行一个postgreSQL服务器。 我创建了一个数据库mydb。 用户danielb被创建为超级用户。 PostgreSQL表用于存储和汇总数据。 create table balances(balances_id serial,...
在开发数据库应用或者调试代码时,经常需要获取系统的当前日期和时间,我们来看一下 PostgreSQL 中提供的相关函数。 当前日期 CURRENT_DATE CURRENT_DATE 函数用于获取数据库服务器的当前日期: postgres=# ...
3Oracle 外部表访问参数59Oracle 索引组织表59Oracle 索引组织表选项59Oracle 视图60Oracle 函数或过程61Oracle 数据库链接62Oracle 索引63Oracle Java65Oracle 实体化视图66Oracle 实体化视图日志68Oracle 包69...
结合了其他 Navicat 成员的功能,Navicat Premium 支持大部份在现今数据库管理系统中使用的功能,包括存储过程、事件、触发器、函数、视图等。其他功能包括 Navicat Cloud、数据模型工具、导入向导、导出向导、调试...
对于使用Oracle的同学来说,该工具可能不是最好用的工具,但是对于使用DB2的同学来说还是很好的,唯一的缺点是不能调试存储过程,功能略逊于Toad for DB2,但是操作方便性很多地方比Toad强,同时目前Toad还没有支持...
PostgreSQL 这个存储库详细描述了对 postgres-master 存储库所做的更改以及我们试图强调的一些其他概念。 有关每个主题的完整详细信息,请参阅 Read-ME 文件夹。 Postgres_Installation:关于Postgres 以及在...
ansible-ycsb Ansible-ycsb是为创建的一个...postgresql_from_deb-从ubuntu存储库安装PostgreSQL postgresql_from_source-直接从源代码安装PostgreSQL(master分支) 日志-将MongoDB的写关注级别设置为journaled js
Xpath 一个基于python的跨平台工具,可自动检测和利用基于错误的注入安全漏洞的过程。要求的Python 3 Python pip3 Python模块requests Python模块colorama Python模块chardet模块安装pip install -r requirements....
motcp socket存储转发功能,可以将通信的包以十六进制的格式打印出来,调试网络程序的好帮手 echoserv echo 服务器,把客户端的数据不更改地返回。 编译,提供两种编译模式,windows的cygwin环境,还有linux环境...
涉及到SQLServer2000、SQLServer2005、Access、Oracle10g、MySql5.0和Postgresql8.2等6种数据库语言,内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组...
涉及到SQLServer2000、SQLServer2005、Access、Oracle10g、MySql5.0和Postgresql8.2等6种数据库语言,内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组...
涉及到SQLServer2000、SQLServer2005、Access、Oracle10g、MySql5.0和Postgresql8.2等6种数据库语言,内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组...