【问题标题】:postgres treat null as empty string when concatenated with string与字符串连接时,postgres 将 null 视为空字符串
【发布时间】:2013-11-23 00:49:42
【问题描述】:

当我在我们的一台服务器上触发以下查询时

     select null || 'query' ,'|',version

结果为空,不显示任何内容

当我在具有相同版本的 postgresql 服务器的另一台服务器上触发相同的查询时

我得到的结果是

 query

两台服务器上的postgres版本都是

  1. i686-pc-linux-gnu 上的 EnterpriseDB 9.2.1.3,由 gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52) 编译,32 位
  2. EnterpriseDB 9.2.1.3 on x86_64-unknown-linux-gnu,由 gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52) 编译,64 位

为什么会有这种不同的行为?

【问题讨论】:

  • 这些都不是 PostgreSQL。它们都是 EnterpriseDB。您是否还启用了任何 Oracle 兼容性而不是另一个?我还认为您错过了查询中的两列结果。
  • 是的,这些是 EnterpriseDB,查询中的版本列给出了我问题末尾的版本。问题出在第一列。你能告诉我如何检查 oracle 的兼容性吗?

标签: enterprisedb


【解决方案1】:

检查两台服务器上edb_redwood_strings参数的设置。

查看更多Oracle Compatible Configuration Parameters

edb_redwood_strings – 将 NULL 等同于空字符串,以便进行字符串连接操作。对于 Oracle 兼容行为,请将 edb_redwood_strings 设置为 TRUE。

SET edb_redwood_strings TO off; -- or on

【讨论】:

  • 是的,它在一台服务器上为“开启”,另一台服务器为“关闭”谢谢,彼得.. 我无法投票。我的声望太低了
猜你喜欢
  • 2020-06-20
  • 2012-07-18
  • 2020-07-06
  • 1970-01-01
  • 1970-01-01
  • 2011-12-06
  • 1970-01-01
  • 2011-05-11
  • 2015-01-13
相关资源
最近更新 更多