`

PostgreSQL自定义异常

阅读更多

  在Oracle的procedure里,我们会用for update nowait锁一些记录,防止多个用户同时修改同一条记录。为了捕捉ora-00054错误,并对用户进行友好提示,开发人员自定义了一个exception,叫RESOURCE_BUSY_EXCEPTION,关联的Oracle错误代码就是ora-00054。这个自定义的exception在EDB里报错。

  原因是EDB里的自定义异常,只能绑定-20000 and -20999之间的错误代码。

  在PG中,捕获未获得行锁的异常处理的例子:

1.通过错误码捕获

do $$declare
errmsg text;
begin
select * from t1 for update nowait;
exception
when SQLSTATE '55P03' then
raise INFO 'row locked by others';
when others then
raise INFO 'others error';
end$$;

2.通过异常名捕获

do $$declare
errmsg text;
begin
select * from t1 for update nowait;
exception
whenlock_not_available then
raise INFO 'row locked by others';
when others then
raise INFO 'others error';
end$$;
分享到:
评论

相关推荐

    postgresql 兼容 oracle 函数

    6. **其他兼容性特性**:还包括异常处理、游标处理、包的创建等,以尽可能地模拟Oracle的行为。 安装和使用"orafce-3.1.2"扩展,通常需要在PostgreSQL服务器上执行SQL命令进行安装,并在查询中调用这些函数。需要...

    PostgreSQL12.2中文手册.chm.7z

    10. **故障排查**:对于遇到的问题,手册会提供一些常见的解决方案,帮助你诊断和解决PostgreSQL中的错误和异常。 通过深入阅读和理解这份"PostgreSQL12.2中文手册",你不仅可以掌握PostgreSQL的基本操作,还能了解...

    postgresql8.2.3用户手册API

    PostgreSQL允许创建自定义数据类型和函数,这使得数据库能更好地适应特定应用需求。API手册会讲解如何编写和注册这些扩展。 十一、连接池管理 为了提高性能和资源利用率,通常会使用连接池来管理数据库连接。API...

    PostgreSQL9.3 DBA最佳实战培训PPT 580页

    - 自定义函数与类型:编写PL/pgSQL函数,定义自定义数据类型。 **8. 故障排查与维护** - 错误处理:学习识别和解决常见的错误和异常。 - 日志分析:理解日志系统,如何设置和分析日志以进行问题定位。 **9. ...

    封装连接PostgreSQL类

    这可以通过抛出和捕获自定义异常类来实现。 总结来说,"封装连接PostgreSQL类"是一个高效、安全的编程实践,它允许开发者更专注于业务逻辑,而不是数据库连接的细节。`connectPQ.c`和`connectPQ.h`中的代码应该充分...

    浅析PostgreSQL事务处理机制

    此外,PostgreSQL还允许用户轻松地定制和扩展,包括自定义函数、操作符、数据类型、索引以及过程语言。它可以运行在多种操作系统上,如Linux、UNIX、Windows等,并提供了丰富的编程接口支持,例如C/C++、Java、.NET...

    PostgreSQL 10 DBA菜谱源码

    9. **扩展与自定义类型**:PostgreSQL允许开发和使用扩展,比如地理空间数据支持、全文搜索等,源码可能涵盖安装和使用扩展的步骤。 10. **异常处理与事务管理**:了解如何使用BEGIN/COMMIT/ROLLBACK处理事务,以及...

    postgresql的类似sqlserver的isdate方法

    为了在PostgreSQL中实现与SQL Server `ISDATE`相似的功能,我们可以使用PL/pgSQL语言编写一个自定义函数。具体代码如下: ```sql CREATE OR REPLACE FUNCTION isdate(in_date text) RETURNS integer AS $BODY$ ...

    PostgreSQL Developer s Guide

    - **定义异常**: 可以自定义异常并对其进行处理。 ##### 10. Native Support for Other Procedural Languages - **PL/Python** - **安装**: 使用`CREATE EXTENSION plpythonu;`创建扩展。 - **编写函数**: 在PL/...

    postgresql.jar

    它支持多种数据类型,包括标准SQL数据类型以及自定义类型,提供丰富的函数库,并且具有强大的触发器和存储过程功能。 **二、Java JDBC驱动** Java JDBC(Java Database Connectivity)是Java平台中用于与各种...

    PostgreSQL内核分析

    2. **Postgres**:此类进程负责执行用户发送的所有SQL语句和自定义函数,通常与用户的每一个连接相对应,因此可能有多个实例同时运行。 - **实现原理**:`postgres`进程的代码主要分布在`src/backend/tcop/...

    14.Oracle自定义函数1

    例如,如果需要在 Oracle、MySQL 和 PostgreSQL 中实现序列生成器,可以为每个数据库编写相应的自定义函数,保持相同的接口,但实现细节各异,从而简化跨平台的兼容性问题。 总结来说,Oracle 自定义函数提供了一种...

    postgresql-ocaml:PostgreSQL数据库的OCaml绑定

    `postgresql-ocaml` 将 PostgreSQL 的错误转换为 OCaml 的异常,这使得错误处理更加直观和一致。例如,如果连接失败或查询出错,会抛出相应的异常,可以通过 `try...with` 结构捕获并处理。 **6. 扩展与性能** 除了...

    基于PostgreSQL数据库构建数据中台.pdf

    - **计算优化服务**:通过插件支持SQL-SCAN优化、动态运维管理和自定义监控任务,提升计算效率和性能。 - **高可用与资源管理**:采用计算和存储分离,实现资源隔离,保证任务执行的稳定性,并提供弹性伸缩能力。 ...

    PostgreSQL 8.3 数据库文档

    - **用户自定义函数**: 如何创建自己的函数来扩展 PostgreSQL 的功能。 **2.3 数据库管理员指南** - **操作系统配置**: 如何在不同操作系统上配置 PostgreSQL。 - **数据库安全**: 包括权限管理、加密等内容。 - *...

    自定义的数据库连接池

    6. **异常处理**:在数据库连接出现异常时,连接池应有相应的处理策略,如自动重试、隔离故障连接等。 7. **连接池实现**:常见的开源数据库连接池实现有C3P0、DBCP、HikariCP、Druid等。自定义连接池需要考虑如何...

    Python 连接Postgresql psycopg21

    11. **错误处理**: Psycopg2 提供了丰富的异常处理机制,如 ` OperationalError `, ` IntegrityError ` 等,帮助开发者处理各种数据库操作中的错误。 总的来说,Python 中使用 Psycopg2 连接 PostgreSQL 数据库是一...

    POSTgreSQL:51风控系统背后的利器_.zip

    4. **扩展性**:POSTgreSQL允许用户自定义函数,能够根据业务需求定制特定的数据处理逻辑,提高风控模型的灵活性。 5. **性能优化**:通过索引、分区、并行查询等手段,POSTgreSQL能有效提升查询速度,满足风控系统...

    PostgresChina2018曾文旌阿里云RDSforPostgreSQL在PostgreSQL功能和性能改进.zip

    2. 扩展性:通过添加插件或自定义函数,增强了PostgreSQL的业务处理能力,满足更多定制化需求。 3. 安全性:提供了精细的权限控制、SSL加密传输、审计日志等功能,确保数据安全。 四、性能优化 1. 并行查询:通过...

Global site tag (gtag.js) - Google Analytics