摘要:
一、概述 invalid byte sequence for encoding "UTF8": 0x00(注意:若不是0x00则很可能是字符集设置有误),是PostgreSQL独有的错误信息,直接原因是varchar型的字段或变量不接受含有'\0'(也即数值0x00、UTF编码'\u0000')的字 阅读全文
摘要:
PostgreSQL中用CREATE OR REPLACE VIEW更新视图时,只能在最后增加字段,不能改字段名、不能删除字段、也不能在中间增加字段。建议改用先DROP VIEW再CREATE VIEW的风格,为防止视图层次引用所带来的顺序问题,在DROP VIEW时同时带上IF EXISTS和CASCADE选项。 阅读全文
摘要:
PostgreSQL在位操作时,有时会报"can't cast type numeric to bit"的错误。这是因为参与运算的变量被定义为numeric(n, 0)而不是直接定义为整型,因此需要先将其转换为整形再使用位操作符。 阅读全文
摘要:
程序运行时抛出“不良的类型值: long”错误,经分析是在读取主库按二进制数组方式存储的LOB数据时,按默认的oid + bigobject方式而导致。早先的重写PostgreSQL94Dialect的remapSqlTypeDescriptor()接口仍不能杜绝错误产生。经分析hibernate-core源码,继续改写getSqlTypeDescriptorOverride()接口,终于解决了问题。 阅读全文
摘要:
PostgreSQL的数据字典里存放的表名、列名均为全小写,而其JDBC的部分接口在处理时没有进行大小写转换,导致调用时的返回结果为空。个人倾向于认为这是bug,请在使用相关接口时加入大小写转换的代码。 阅读全文
摘要:
PostgreSQL把空串('')、空值(NULL)当作不同的值,从而影响到那些没有申明为NOT NULL字段上创建的unique约束。最彻底的解决方法是将应用代码中赋空串的地方全部改为赋空值,另一个变通方法是创建触发器,在插入或修改之前将约束字段的空串自动修改为空值。 阅读全文
摘要:
在将JPA项目移植到PostgreSQL环境时,除一些简单的类型不匹配错误外,令人非常头疼的是BLOB, CLOB及JSON类型的问题。本文根据搜索到的资料,加上自己实际操作过程中的分析验证,将最终的解决思路进行总结。 阅读全文
摘要:
一、综述 今天在PostgreSQL遇到一个奇怪的现象,简而言之,是想用函数(存储过程)实现插入记录,整个过程没报错但事后却没找到记录!忙活半天,才发现原因是PostgreSQL函数(存储过程)有自动COMMIT或ROLLBACK的特殊规定。 二、问题重现 以下用示例表和示例代码来重现该问题。 涉及 阅读全文
摘要:
一、前言 客户在计划将业务向云平台迁移,这些天也在测试将数据库由Oracle替换为开源的PostgrSQL。为什么选PostgreSQL?因为这是对应用程序代码修改最小的方案,没有之一! PostgreSQL数据库的简要信息为:服务器loacalhost,端口5432,数据库projadm,用户名/ 阅读全文
摘要:
PostgreSQL内置UUID类型,但默认安装时并没有带相关函数,需要手工生成。 在早期版本(貌似直到9.3仍如此),通过执行脚本uuid-ossp.sql可以生成UUID相关函数,该脚本通常在安装目录的share/contrib/文件夹。 但到9.4版后,此方法已不可行。首先脚本变为安装目录的s 阅读全文