在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 中的存储过程进行详细的介绍和解释。 什么是存储...
PostgreSQL 存储过程详解 PostgreSQL 存储过程是一种强大的功能,可以实现复杂的逻辑操作和数据处理。下面将详细介绍 PostgreSQL 存储过程的结构、变量类型、连接字符、控制结构等知识点。 一、存储过程结构 存储...
本文将深入探讨如何使PostgreSQL支持存储过程(函数)的调试,并介绍一种名为EDB Debugger的工具。 首先,PostgreSQL本身并不内置强大的图形化调试器,但通过使用PL/pgSQL提供的调试语句,如`RAISE NOTICE`和`...
在调试过程中,了解和使用上述方法可以帮助定位和解决问题,优化数据库性能。记住,调试PostgreSQL时应尽量避免在生产环境中直接操作,而是应该在测试环境中复现问题并进行调试。同时,定期更新和维护数据库系统,...
例如,以下是一个接受整数数组作为参数的PostgreSQL存储过程: ```sql CREATE OR REPLACE FUNCTION "public"."func_arr_update"(ids _int4) RETURNS "pg_catalog"."void" AS $BODY$ DECLARE scount INTEGER; ...
本文将深入探讨PostgreSQL存储过程的定义、使用方法以及注意事项,通过实例帮助理解。 首先,让我们了解存储过程的基本定义。存储过程是由一系列SQL语句组成的程序,存储在数据库中,用户可以通过调用它的名称来...
存储过程参数查看器和存储过程助手是两个非常实用的工具,它们帮助数据库管理员(DBA)和开发人员更有效地管理和调试存储过程。 1. **存储过程**: - 存储过程是由用户创建的一组SQL语句,保存在数据库中,可以多...
通过这些项目文件,我们可以构建和调试PostgreSQL的各个组件,从而理解其工作原理,如查询解析、事务管理、存储引擎、索引算法等。这对于数据库管理员、开发人员和研究人员来说,是一个极有价值的资源,可以帮助他们...
在描述中,“用于自动产生C#对PostgreSQL开发时用到的存储过程和select脚本”,这表明这个工具集具有自动生成代码的能力,特别是针对存储过程(用于执行一系列数据库操作的预编译SQL语句)和SELECT查询(用于从...
tsql2pgsql是一款非常实用的工具,主要用于帮助数据库管理员和开发者将TSQL(SQL Server的存储过程语言)转换为PL/PGSQL(PostgreSQL的存储过程语言)。在SQL Server和PostgreSQL之间进行迁移时,这个工具能显著减轻...
【嵌入式PostgreSQL服务器】是一种特殊的数据库实现,它允许开发者将PostgreSQL数据库引擎直接集成到他们的应用程序中,而不是作为独立的服务运行。这样的设计对于那些需要在本地或内存中快速访问数据的应用,或者...
5. **自定义配置**:`configure`脚本允许通过参数调整安装位置、端口、存储过程语言等。例如,使用`--prefix`指定安装目录,默认为`/usr/local/pgsql`。 6. **编译源码**:执行`make`命令以编译源码。这会生成可...
以上就是安装PostgreSQL数据库在Unix系统上的详细过程,包括依赖库的安装、编译配置、权限设置、数据库的初始化、启动和服务调试等关键步骤。这些步骤确保了PostgreSQL能够在Unix环境下正确且安全地运行。
这是一种非常有用的工具,可用于调试复杂的存储过程或函数。 #### 异常处理 (EXCEPTION) - **MS SQL Server** 中使用 `TRY...CATCH` 结构来捕获并处理异常。 - **PostgreSQL** 中使用 `BEGIN...EXCEPTION` 结构来...
第十一课Postgresql引擎开发深入:执行优化器实现分析,增加兼容其它数据库存储过程功能。第十二课Postgresql引擎开发深入:数据库数据字典实现分析,扩展系统性能动态视图。第十三课发布数据库引擎:扩展并运行...
3. **对象-关系特性**:除了基本的关系模型,PostgreSQL 还支持一些对象-关系特性,如自定义数据类型、继承、规则、触发器和存储过程。 **二、PostgreSQL 8 的关键特性** 1. **数据类型**:PostgreSQL 8 提供了...
### PostgreSQL原理简介 #### 一、体系架构 ...综上所述,PostgreSQL 的体系架构设计充分考虑了系统的稳定性和高效性,通过精心设计的进程模型、内存管理和存储结构实现了高度可扩展且强大的数据库管理系统。
2. **SQL语言**:文档详细介绍了SQL的使用,包括数据定义(DDL)、数据操作(DML)、查询(SELECT)、事务控制、视图、索引和存储过程等。 3. **安全性与权限**:讲解了用户管理、角色、权限系统以及如何实现数据...
此外,它还支持存储过程的创建和调试,为复杂的业务逻辑处理提供了便利。 安全方面,Navicat提供了多种安全措施,如SSL连接,确保数据在传输过程中得到加密保护。此外,用户可以设置访问权限,限制不同用户对数据库...