2010-10-05 128 views
1

这里工作正常,我有微调的问题PostgreSQL的价值:Btrim功能没有在PostgreSQL中

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的修剪功能,但是它会发生错误。

+0

和错误是什么? – 2010-10-05 15:56:12

+0

错误:: PGError:错误:函数pg_catalog.btrim(整数,未知)不存在 线1:... ient_offices“.clients_corporate_billing_id WHERE(trim(clien ... – Rubyist 2010-10-05 16:00:13

+0

这很好 - 我也找不到一个函数“btrim”,其中第一个参数的类型为integer,您必须将第一个参数强制转换或转换为文本 – 2010-10-05 16:13:27

回答

2

documentation

Function: btrim(string text [, characters text])
Return Type: text
Description: Remove the longest string consisting only of characters in characters (a space by default) from the start and end of string
Example: btrim('xyxtrimyyx', 'xy')
Result: trim


所以你需要转换为文本:

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

+0

真棒,Reall It Works .... Thnx Bro – Rubyist 2010-10-06 08:03:47

+1

很高兴我们能帮到您,PostgreSQL错误非常具有描述性。有一个你知道存在的本地函数有问题,通常是由于传入的参数。如果你看到一个关于'typecast'的消息,它会给你一个很大的帮助,以便知道该找什么。 – vol7ron 2010-10-06 23:34:28

+0

hi @ vol7ron你可以plz帮助我,为什么这个'btrim('xyxtrimyyx','yzz')'显示这个'xyxtrimyyx' – ziMtyth 2018-01-07 10:29:44