【发布时间】:2018-02-22 11:43:24
【问题描述】:
我有一个问题,我在 postgres 中有一个函数,可以生成用于生成更复杂报告的标题。
一切都很好。对于header的结构,我是根据字段本身的左或右留空格,这在lpad和rpad上实现。
语法基本上是 lpad 或 rpad (string, length, pad_string)。就在上面。
复杂的是“长度”,应该是整数,我必须为控制表中某个字段的变量值做。
这个值是可变的,所以我做了一个函数来返回它的值。
我尝试过这样做:
SELECT c_transac||
lpad(c_tr_count,(SELECT crd.get_size_field('CRD',c_transac,'TRANSACTION-SEQUENCE')),' ')||
lpad(c_rc_count,8,' ')||
rpad(to_char(c_ctac_correlativo,'9999'),10,' ')||
rpad(ti.type_right,3,' ')||
lpad(ct.peri_codigo,8,' ')||
lpad(ct.peri_codigo,8,' ')||
lpad(v_pcod_scd_dest,11,' ')||
rpad(v_sigla_dest,45,' ')||
lpad('0',8,' ')||
lpad(to_char(c_decimal,'9'),1,' ')||
lpad(to_char(c_percentage,'9'),1,' ')||
rpad(c_version_crd,5,' ')||
rpad(c_currency,3,' '),
ti.type_right
INTO v_linea_sdn, c_type_right
FROM crd.tidav ti, public.ctact ct
WHERE to_number(ti.tida_codigo, '9') = c_tida_codigo
AND ct.ctac_correlativo = c_ctac_correlativo;
我调用的函数返回一个数值,它给了我以下错误:
ERROR: there is no lpad function (character varying, numeric, unknown)
LINE 2: lpad (c_tr_count, (SELECT crd.get_size_field ('CRD', c_tra ...
【问题讨论】:
标签: postgresql postgresql-9.4 rails-postgresql