首页 > 解决方案 > PostGreSQL 函数 - 整数的输入语法无效

问题描述

我试图执行 PostGreSQL 函数,但出现错误。

此函数已存在于数据库中:

    宣布


      vCur REFCURSOR;
      vSql varchar(2000);
      vStr varchar(10);
      vAux varchar(4000);
      vRet 大整数;

    开始
      vRet := '';
      -- monta o SELECT dinâmico
      vSql := '';
        vSql := vSql || '选择 SUM(F_PRD_SALDO_PRODUTO(A.CD_EMPRESA, '''|| PI_CD_SALDO ||''', A.CD_PRODUTO, ''' || PI_DT_SALDO::varchar || ''')) ';
        vSql := vSql || '来自 VR_PRD_PRODEMP A';
        vStr := '在哪里';
      -- 企业过滤器
      如果(PI_CD_EMPRESA 不为空)则
        vSql := vSql || vStr || 'A.CD_EMPRESA IN ('|| PI_CD_EMPRESA || ')';
        vStr := '和';
      万一;
      -- 过滤产品
      如果 (PI_CD_PRODUTO 0) 那么
        vSql := vSql || vStr || 'A.CD_PRODUTO = ''' || PI_CD_PRODUTO::varchar || '''';
        vStr := '和';
      万一;
      -- Passo 2: abre e executa o cursor dinâmico usando 一个游标变量
      为 EXECUTE vSql 打开 vCur;
      环形
        将 vCur 提取到 vAux 中;
        找不到时退出;/* 应用于 vCur */
        vRet := vAux;
      结束循环;
      关闭 vCur;
      vRet:=合并(vRet,'0');
      返回(vRet)::数字;
    结尾;



    

我正在尝试执行此命令:

SELECT public.f_dic_sld_prd_produto('301','1',14708,'2019-01-01 00:00:00')

但它得到以下错误:

错误:整数的无效输入语法:“” SQL 状态:22P02 上下文:PL/pgSQL 函数 f_dic_sld_prd_produto(text,text,bigint,timestamp without time zone) line 12 at assignment

注:本公司使用的系统默认此功能。在使用 Oracle 的其他安装中,不会发生此错误。

拜托,有人可以帮忙解决吗?!

标签: postgresqlfunctionsyntaxcasting

解决方案


推荐阅读