Postgresql: ERROR: invalid type name......%TYPE

文章描述了一个在创建PL/pgSQL函数时遇到的错误,即使用了无效的类型名称sap_dispatchingm.ffact_no%type。解决方法是明确指定表的schema名,如smspci_app.sap_dispatchingm_bak.ffact_no%type,从而成功创建函数。
摘要由CSDN通过智能技术生成

1.原SQL

CREATE FUNCTION wmspci_app.pro_p1()
    RETURNS record
    LANGUAGE 'plpgsql'
    
AS $BODY$
declare
  v_rec          record; 
  _c varchar;
  v_sysdate      timestamp;
  v_cnt          numeric(6);
  sfc            record;   
  v_sap_fact_no    sap_dispatchingm_bak.ffact_no%type;
  v_ffact_no       dispatchingm_bak.ffact_no%type;

begin
    raise notice 'now is %', clock_timestamp();
END;
$BODY$;

2.錯誤

输出错误如下:

ERROR: invalid type name "sap_dispatchingm.ffact_no%type"
LINE 18: v_sap_fact_no sap_dispatchingm.ffact_no%type;

3.解决方法

指定table所在的schema name

CREATE FUNCTION wmspci_app.pro_p1()
    RETURNS record
    LANGUAGE 'plpgsql'
    
AS $BODY$
declare
  v_rec          record; 
  _c varchar;
  v_sysdate      timestamp;
  v_cnt          numeric(6);
  sfc            record;   
  v_sap_fact_no    wmspci_app.sap_dispatchingm_bak.ffact_no%type;
  v_ffact_no       wmspci_app.dispatchingm_bak.ffact_no%type;

begin
    raise notice 'now is %', clock_timestamp();
END;
$BODY$;```
结果如下:

```bash
CREATE FUNCTION

Query returned successfully in 40 msec.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值