【问题标题】:Btrim function is not working properly in PostgreSQLBtrim 函数在 PostgreSQL 中无法正常工作
【发布时间】:2010-10-05 15:07:01
【问题描述】:

这里,PostgreSQL 中的trim() 函数的值有问题:

Ruby代码:

    if(this.modelName=="ClientOffice")
       {    this.params="model_name="+this.modelName+"&action_name="+this.actionName+"&
find_condition=btrim(clients_corporate_billings.id,' ') %3D 
btrim('"+validString('populateValue0','text')+"',' ')
  & object_id="+this.objectId;
      }

 &action_name="+this.actionName+"
    &find_condition=btrim(clients_corporate_billings.id,' ') %3D
     btrim('"+validString('populateValue0','text')+"',' ')

在上面的代码中,btrim 是 PostgreSQL 的 function 用于修剪,但它给出/产生错误。

【问题讨论】:

  • Error :: PGError: ERROR: function pg_catalog.btrim(integer, unknown) does not exist LINE 1: ...ient_offices".clients_corporate_billing_id WHERE (trim(client...
  • 没关系 - 我也找不到第一个参数为整数类型的函数“btrim”。您必须将第一个参数转换或转换为文本。

标签: sql ruby-on-rails postgresql controller


【解决方案1】:

来自documentation

功能: btrim(string text [, characters text])
返回类型: text
说明:最长的字符串,仅由字符串开头和结尾的字符(默认为空格)组成
示例: btrim('xyxtrimyyx', 'xy')
结果:修剪


所以你需要转换为文本:

&find_condition=btrim(clients_corporate_billings.id::text,' ') %3D

【讨论】:

  • 很高兴我们能提供帮助。 PostgreSQL 错误非常具有描述性。如果您知道存在的本机函数出现问题,这通常是由于传入的参数。如果您看到有关 typecast 的消息,它可以帮助您了解要查找的内容。
  • 嗨@vol7ron 你能帮我吗,为什么这个btrim('xyxtrimyyx', 'yzz') 显示这个xyxtrimyyx
  • @ziMtyth 您似乎需要提出一个新问题并描述您的问题案例的全部范围、您正在做什么以及您尝试过的内容
  • @vol7ron 确实,我做到了,我得到了答案,谢谢 =)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-15
  • 2013-03-27
相关资源
最近更新 更多