Ok.

PG 9.3
Oracle_FDW 0.9.10
SO Fedora 19
PostgreSQL Instalado pelo PGDG
Ajustes de Configuração realizados pelo PGTune

> O erro aparece num simples SELECT ou dentro de uma função?

Tenho nas duas situações:

Na função ocorre quando faço um loop por várias tabelas à serem mapeadas,
eu pego o nome das tabelas, seus respectivos campos e tipagens, depois faço
a conversão de tipagens oracle>postgresql e gero o create da FDW.

Abaixo Segue um exemplo da consulta: que está gerando o erro:


SELECT 0 AS u_pkey,
       f_vendedor.u_orgvenda    AS u_orgvenda,
       f_vendedor.s_codvendedor AS s_codvendedor,
       grupos.s_codgrupo        AS s_codgrupo,
       f_produto.s_codproduto
  FROM f_vendedor
  JOIN (SELECT 'D'            AS s_tipogrupo,
               codepto::text  AS s_codgrupo,
               codusur::text  AS s_codvendedor
         FROM erp.pcusurdepsec
        UNION ALL
        SELECT DISTINCT
               'S'            AS s_tipogrupo,
               codsec::text   AS s_codgrupo,
               codusur::text  AS s_codvendedor
         FROM erp.pcusurdepsec
        UNION ALL
        SELECT 'F'             AS s_tipogrupo,
               codfornec::text AS s_codgrupo,
               codusur::text   AS s_codvendedor
         FROM erp.pcusurfornec
        UNION ALL
        SELECT DISTINCT
               'I'::text                AS s_tipogrupo,
               pcdistrib.coddistrib     AS s_codgrupo,
               f_vendedor.s_codvendedor AS s_codvendedor
          FROM erp.pcdistrib
         CROSS JOIN f_vendedor
        ) grupos ON (f_vendedor.s_codvendedor = grupos.s_codvendedor)
  INNER JOIN f_produto ON ( grupos.s_codgrupo = (CASE WHEN (SELECT s_valor
FROM t_parametro_cliente WHERE s_campo = 'v_utiliza_grupo') = 'D' THEN
f_produto.codepto::text
                                                      WHEN (SELECT s_valor
FROM t_parametro_cliente WHERE s_campo = 'v_utiliza_grupo') = 'F' THEN
f_produto.codfornec::text
                                                      WHEN (SELECT s_valor
FROM t_parametro_cliente WHERE s_campo = 'v_utiliza_grupo') = 'S' THEN
f_produto.codsec::text
                                                      WHEN (SELECT s_valor
FROM t_parametro_cliente WHERE s_campo = 'v_utiliza_grupo') = 'I' THEN
f_produto.coddistrib::text
                                                 END) )
  WHERE grupos.s_tipogrupo = (SELECT s_valor
                         FROM t_parametro_cliente
                        WHERE s_campo = 'v_utiliza_grupo')      ;

ERROR:  cache lookup failed for type 0





-- 


*Atenciosamente,Emanuel Araújo*
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a