- Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 15 anos atrás por
ronaldobim.
-
AutorPosts
-
15 de março de 2011 às 5:44 pm #98540
ronaldobim
ParticipantePessoal, estou com o seguinte problema, tenho uma consulta SQL utilizada para retornar os dados da NF para impressão da danfe, como tempos várias tabelas envolvidas neste SQL tenho uma consulta com 32 left joins.
Quando executo esta consulta no SQL Developer retorna a seguinte mensagem de erro (Não serão lidos mais dados do soquete) e a conexão com a base é perdida. Se eu comentar qualquer um dos left join funciona.
Isso está ocorrendo apenas no cliente que utiliza o Oracle em servidor Linux, no meu PC por exemplo que uso com windows o SQL roda normal. E o mais estranho é que estava funcionando, e do nada parou de funcionar. Temos outros clientes com Oracle no linux e a consulta funciona também.
Se alguém, puder ajudar fico grato.
OBS: é Oracle 11g em linux Had Hat 6416 de março de 2011 às 4:21 am #98545ghiggi
ParticipanteDisponibiliza a consulta SQL que posso tentar lhe ajudar a otimizá-la.
16 de março de 2011 às 5:19 pm #98549ronaldobim
ParticipanteOlá, segue o SQL, este SQL não dá o problema pois foi tirado um ou dois left e fiz outro pequeno select.
SELECT
— DADOS DA NF
CASE
WHEN ASCII(NFCFG.ENTRADASAIDA) = 83 THEN 1
WHEN ASCII(NFCFG.ENTRADASAIDA) = 69 THEN 2
END AS ENTSAI,
NFCFG.DESCRICAO AS DESCNFCFG,
NFCFG.CASASDECUNIT, NFCFG.CASASDECUNITDANFE,
NFCFG.IMPDESCTOSEP, NFCFG.IMPRECIBFIX,
NFCFG.GRUPOFAMILIAR,
NFCFG.ENTRADASAIDA,
NFCFG.NATUREZADAOPERACAO,NFCAB.EMITENFE AS TIPOEMISSAO,
NFCAB.ESTAB AS EMPRESA,
NFCAB.ESTAB, NFCAB.SEQNOTA,
–O campo ESTAB_SEQNOTA é utilizado para quebra de grupos no ReportBuilder
NFCAB.ESTAB || CHR(45) || NFCAB.SEQNOTA AS ESTAB_SEQNOTA,
NFCAB.SERIE || CHR(45) || NFCAB.NOTA AS NRONF,
NFCAB.CHAVEACESSONFE,
NFCAB.SERIE,
NFCAB.NOTA AS NUMERO,
NFCAB.NPROTAUTORIZA,
NFCAB.DTAUTORIZANFE,
NFCAB.VLRIMPNFANT,
NFCAB.SAFRA AS SAFRA_CAB,
CFOP.NOME AS DESCCFOP,
CONFDANFE.REFCOMP AS CONFDANFE_REFCOMP,
CONFDANFE.IMPLOTE AS CONFDANFE_IMPLOTE,
CONFDANFE.LOGO AS CONFDANFE_LOGO,
CONFDANFE.IMPENDEMIT AS CONFDANFE_IMPENDEMIT,
CONFDANFE.NATOPER AS CONFDANFE_NATOPER,
CONFDANFE.VALORTOTAL AS CONFDANFE_VALORTOTAL,
CONFDANFE.IMPPH AS CONFDANFE_IMPPH,
CONFDANFE.IMPSAFRA AS CONFDANFE_IMPSAFRA,
CONFDANFE.MSGCONTRATO AS CONFDANFE_MSGCONTRATO,
CONFDANFE.VLRTOTPROD AS CONFDANFE_VLRTOTPROD,
CONFDANFE.DOCPEND,
CONFDANFE.IMPLGLOTE,
CONFDANFE.IMPLGVALIDADE,
CONFDANFE.IMPLGFABRICANTE,
CONFDANFE.IMPLGREGISTROFAB,
CONFDANFE.IMPLGQUANTIDADE,
CONFDANFE.IMPLGPESO,
CONFDANFE.IMPLGREGISTROPROD,
CONFDANFE.IMPLSLOTE,
CONFDANFE.IMPLSGERMINACAO,
CONFDANFE.IMPLSATESTADO,
CONFDANFE.IMPLSPUREZA,
CONFDANFE.IMPLSVARIEDADE,
CONFDANFE.IMPLSPENEIRA,
CONFDANFE.IMPLSVALIDADE,
CONFDANFE.IMPLSCATEGORIA,
CONFDANFE.IMPLSSAFRA,
CONFDANFE.IMPLSESPECIE,
CONFDANFE.IMPLSCULTIVAR,
CONFDANFE.IMPLSQUANTIDADE,
CONFDANFE.IMPLSPESO,
CONFDANFE.IMPLSNOMEPROD,
CONFDANFE.IMPLSRENASEM,
CONFDANFE.IMPLSBOLETIM,
CONFDANFE.IMPLSPMS,
CONFDANFE.IMPLVLOTE,
CONFDANFE.IMPLVMESFAB,
CONFDANFE.IMPLVANOFAB,
CONFDANFE.IMPLVVALIDADE,
CONFDANFE.IMPLVFABRICANTE,
CONFDANFE.IMPLVQUANTIDADE,
CONFDANFE.IMPLDLOTE,
CONFDANFE.IMPLDDATAVALIDADE,
CONFDANFE.IMPLDDATAFABRICACAO,
CONFDANFE.IMPLDQUANTIDADE,
CONFDANFE.IMPNROPED,
CONFDANFE.IMPREPRE,
CONFDANFE.IMPUSER,
CONFDANFE.DADOSEMIT,
CONFDANFE.IMPREPRENOME,
PREPRESE.DESCRICAO AS NOMEREPRESENT,
NFCFG.NACIMPEXP,
NFCAB.EXPNCM,
NFCAB.EXPRE,
NFCAB.EXPVLRFOB,
NFCAB.EXPTXDOLAR,
NFCAB.EXPNAVIO,
NFCAB.EXPDESCITEM,
NFCAB.EXPEMBALAGEM,
NFCAB.USERID,/* DADOS DO EMITENTE */
EMI.CGC AS CNPJEMI,
EMI.NOME AS NOMEEMI,
EMI.FANTASIA AS FANTASIAEMI,
EMI.NOME AS RAZAOSOCIALEMI,
EMI.ENDERECO AS ENDERECOEMI,
EMI.BAIRRO AS BAIRROEMI,
EMI.NUMERO AS NUMEROEMI,
EMI.COMPLEMENT AS COMPLEMENTOEMI,
CIDEMI.NOME AS NOMECIDADEEMI,
CIDEMI.UF AS UFEMI,
EMI.TELEFONE AS TELEMI,
EMI.FAX AS FAXEMI,
EMI.CEP AS CEPEMI,
EMI.INSCESTAD AS INSESTADEMI,
EMI.LOGOTIPO,— DADOS DO DESTINATÁRIO
DEST.NOME || CHR(45) || DEST.NUMEROCM AS NOMECLI,
DEST.CNPJF AS CNPJCLI,
COALESCE(END_ALTERNATIVO.ENDERECO, DEST.ENDERECO) AS ENDERECOCLI,
COALESCE(END_ALTERNATIVO.BAIRRO, DEST.BAIRRO) AS BAIRROCLI,
COALESCE(END_ALTERNATIVO.CEP, DEST.CEP) AS CEPCLI,
COALESCE(CID_END_ALTERNATIVO.NOME, CIDDEST.NOME) AS NOMECIDADECLI,
COALESCE(END_ALTERNATIVO.TELEFONE, DEST.TELEFONE) AS TELCLI,
COALESCE(CID_END_ALTERNATIVO.UF, CIDDEST.UF) AS UFCLI,
COALESCE(UF_END_ALTERNATIVO.CODIGO, UFDEST.CODIGO) AS CUF,
COALESCE(END_ALTERNATIVO.NUMEROEND, DEST.NUMEROEND) AS NUMEROENDCLI,
CASE
WHEN DEST.SEXO CHR(74) THEN COALESCE(END_ALTERNATIVO.CREDENCIALAGRO, DEST.CREDENCIALAGRO)
ELSE COALESCE(END_ALTERNATIVO.CREDENCIALAGRO, DEST.INSCESTAD)
END AS INSCESTADCLI,NFCAB.DTEMISSAO,
NFCAB.DTENTSAI AS DTSAIDA,
NFITEM.HORA AS HRSAIDA,— TOTAIS DOS IMPOSTOS
ICMS.BASETRIBUTADA AS BASEICMS,
ICMS.VALORIMPOSTO AS VLRICMS,
ICMS.BASEST AS BASEICMSSU,
ICMS.VALORSUBSTITUICAO AS VLRICMSSUB,NFFRETE.VALORFRETE AS FRETE,
NFFRETE.VALORSEGURO AS SEGURO,
NFFRETE.FRETEBASE,
NFFRETE.FRETEICMS,COALESCE(NFDESC.VALORDESCONTO, 0) + COALESCE(NFDESC.VALORDESCONTOMAOOBRA, 0) AS DESCONTOS,
COALESCE(NFCAB.DESPACESSORIA,0) + COALESCE(NFCAB.OUTROSACRESC,0) AS OUTROS,
NFDESC.IMPOSTODESC, NFDESC.IMPOSTODESCNOME, NFDESC.IMPOSTODESCTOTNF,
NFDESC.IMPOSTODESCNOMETOTNF,
NFDESC.IMPOSTONAOINCTOTFINN, NFDESC.IMPOSTONAOINCNOMETOT,/* Utilizado em um PegaCampo no OnPrint da variavel vVlrIPI – Lentidão no Oracle
IPI.VALORIMPOSTO AS VLRIPI,*/
CONFAGROE.IMPOSTOIPI,— DADOS DO FRETE
COALESCE(NFTRANSP.NOMEINFORMADO, PRESTADOR.NOME) AS NOMEPRE,
CASE NFTRANSP.FRETEPORCONTA WHEN CHR(69) THEN 1 ELSE 2 END AS FRETEPORCONTA,
NFTRANSP.PLACA AS VEICULO,
NFTRANSP.UFPLACA AS UFVEICULO,
CASE
WHEN (NFTRANSP.CPF IS NOT NULL) AND (NFTRANSP.CPF CHR(32)) THEN NFTRANSP.CPF
WHEN (NFTRANSP.CGC IS NOT NULL) AND (NFTRANSP.CGC CHR(32)) THEN NFTRANSP.CGC
ELSE PRESTADOR.CNPJF
END AS CNPJPRE,
COALESCE(NFTRANSP.ENDERECO, PRESTADOR.ENDERECO) AS ENDERECOPRE,
COALESCE(CIDNFTRANSP.NOME, CIDPRE.NOME) AS NOMECIDADEPRE,
COALESCE(CIDNFTRANSP.UF, CIDPRE.UF) AS UFPRE,
CASE
WHEN (NFTRANSP.INSCPRODUTOR IS NOT NULL) AND (NFTRANSP.INSCPRODUTOR CHR(32)) THEN NFTRANSP.INSCPRODUTOR
WHEN (NFTRANSP.INSCESTAD IS NOT NULL) AND (NFTRANSP.INSCESTAD CHR(32)) THEN NFTRANSP.INSCESTAD
WHEN (PRESTADOR.CREDENCIALAGRO IS NOT NULL) AND (PRESTADOR.CREDENCIALAGRO CHR(32)) THEN PRESTADOR.CREDENCIALAGRO
ELSE PRESTADOR.INSCESTAD
END AS INSCESTADPRE,
NFTRANSP.QUANTIDADE AS QTDTRANSP,
NFTRANSP.ESPECIE AS ESPECIETRANSP,
NFTRANSP.MARCA AS MARCATRANSP,
NFTRANSP.PESOBRUTO AS PESOBRUTOTRANSP,
NFTRANSP.PESOLIQUIDO AS PESOLIQUIDTRANSP,
NFMSG.MENSAGEM, NFMSG.MSGTRIB, NFCAB.OBSFISCALGER, NFMSG.MSGFISCO,
NFCAB.RECID_RESERVADO, NFCAB.RECID_RESERVADO2, NFMSGCAD.MSG,
COALESCE(NFCAB.VALORPROD, 0) – COALESCE(NFCAB.VLRNFANT, 0) AS TOTPRODUTOS,
NFCAB.VALOR,
COALESCE(NFCAB.VALORPRODBRUTO,
(COALESCE(NFCAB.VALORPROD,0) – COALESCE(NFCAB.VLRNFANT,0) –
COALESCE(NFDESC.VALORDESCONTO, 0))) AS VALORPRODBRUTO,
NFCAB.VLRNFANT,/DADOS DOS PRODUTOS/
NFITEM.ITEM,
ITEMAGRO.DESCRICAO,
ITEMAGRO.LOTECTRL,
PCLASFIS.NCM AS NBMSH,
NFITEMIMPOSTO_ICMS.CST,
NFITEM.CFOP AS CFOP,
ITEMAGRO.UNIDADE,
NFITEM.QUANTIDADE,
NFITEM.SEQNOTAITEM,
NFITEM.EMBALAGEM,
NFITEM.BONIFICACAO,
NFITEM.VALORUNITARIO,CASE
WHEN COALESCE(CONFDANFE.VLRUNILIQ, CHR(78)) = CHR(83) THENCASE WHEN NFITEM.QUANTIDADE = 0 THEN ROUND(NFITEM.VALORTOTAL, NFCFG.CASASDECUNITDANFE) ELSE ROUND((NFITEM.VALORTOTAL / NFITEM.QUANTIDADE), NFCFG.CASASDECUNITDANFE) END ELSE CASE WHEN NFITEM.QUANTIDADE = 0 THEN ROUND(COALESCE(NFITEM.VALORUNITARIO, NFITEM.VALORTOTAL+COALESCE(NFITEM.DESCTOTAL,0)), NFCFG.CASASDECUNITDANFE) ELSE ROUND(COALESCE(NFITEM.VALORUNITARIO, NFITEM.VALORTOTAL+COALESCE(NFITEM.DESCTOTAL,0) / NFITEM.QUANTIDADE), NFCFG.CASASDECUNITDANFE) ENDEND AS VLRUNIT,
NFITEM.VALORTOTAL AS VLRTOTAL,
NFITEMIMPOSTO_ICMS.BASETRIBUTADA AS BASEICMS_ITEM,
NFITEMIMPOSTO_ICMS.VALORIMPOSTO AS VLRICMS_ITEM,
NFITEMIMPOSTO_ICMS.ALIQUOTA AS ALIQICMS_ITEM,
NFITEMIMPOSTO_IPI.VALORIMPOSTO AS VALORIPI_ITEM,
NFITEMIMPOSTO_IPI.ALIQUOTA AS ALIQIPI_ITEM,
NFITEM.COMPLEMENTO, ITEMAGRO.REFERENCIA, NFITEM.PH,
SAFRA_ITEM.DTINICIAL AS SAFRAITEM_INICIO,
NFITEM.RENDARROZGRAOINT, NFITEM.RENDARROZGRAOQUE,
NFITEM.RENDARROZCASCA, NFITEM.RENDARROZFARELO,
CONFDANFE.DESCUNI, NFITEM.DESCTOTAL,
LEPRECOPESSOA.MSGNF AS LEPRECOPESSOA_MSGNF,
NFCABTXARM.DESCNOME, NFCABTXARM.DESCVALOR, NFCAB.REPRESENT,
NFCAB.NOTACONF, NFCAB.NUMEROCM, NFCFG.PESFINORIGFIXTRANSF ,
NFCFG.IMPRIMEPRECOEBONIFICACAOFROM NFCAB
LEFT JOIN NFITEM
ON (NFITEM.ESTAB = NFCAB.ESTAB)
AND (NFITEM.SEQNOTA = NFCAB.SEQNOTA)LEFT JOIN CFOP
ON (CFOP.CFOP = NFITEM.CFOP)LEFT JOIN SAFRAS SAFRA_ITEM
ON (SAFRA_ITEM.SAFRA = NFITEM.SAFRA)LEFT JOIN ITEMAGRO
ON (ITEMAGRO.ITEM = NFITEM.ITEM)LEFT JOIN PCLASFIS
ON (ITEMAGRO.CLASFISCAL = PCLASFIS.CLASFISCAL)LEFT JOIN NFCFG
ON (NFCFG.NOTACONF = NFCAB.NOTACONF)LEFT JOIN NFMSGCAD
ON NFMSGCAD.CODMSG = NFCFG.CODMSGLEFT JOIN NFCABTXARM
ON (NFCABTXARM.ESTAB = NFCAB.ESTAB)
AND (NFCABTXARM.SEQNOTA = NFCAB.SEQNOTA)LEFT JOIN PREPRESE
ON(NFCAB.REPRESENTESTAB = PREPRESE.EMPRESA)
AND(NFCAB.REPRESENT = PREPRESE.REPRESENT)LEFT JOIN PEMPRESA EMI
ON (EMI.EMPRESA = NFCAB.ESTAB)LEFT JOIN CIDADE CIDEMI
ON (CIDEMI.CIDADE = EMI.CIDADE)LEFT JOIN NFDESC
ON (NFDESC.ESTAB = NFCAB.ESTAB)
AND (NFDESC.SEQNOTA = NFCAB.SEQNOTA)LEFT JOIN NFMSG
ON (NFMSG.ESTAB = NFCAB.ESTAB)
AND (NFMSG.SEQNOTA = NFCAB.SEQNOTA)LEFT JOIN CONFAGROE
ON (CONFAGROE.ESTAB = NFCAB.ESTAB)LEFT JOIN CONFDANFE
ON (CONFDANFE.ESTAB = NFCAB.ESTAB)LEFT JOIN NFTRANSP
ON (NFTRANSP.ESTAB = NFCAB.ESTAB)
AND (NFTRANSP.SEQNOTA = NFCAB.SEQNOTA)LEFT JOIN NFFRETE
ON (NFCAB.ESTAB = NFFRETE.ESTAB)
AND (NFCAB.SEQNOTA = NFFRETE.SEQNOTA)LEFT JOIN LEPRECOPESSOA
ON (LEPRECOPESSOA.ESTAB = NFCAB.ESTAB)
AND (LEPRECOPESSOA.SEQNOTA = NFCAB.SEQNOTA)LEFT JOIN CIDADE CIDNFTRANSP
ON (CIDNFTRANSP.CIDADE = NFTRANSP.CIDADE)LEFT JOIN ENDERECO END_ALTERNATIVO
ON (END_ALTERNATIVO.NUMEROCM = COALESCE(NFCAB.CLIENTEIMP, NFCAB.NUMEROCM))
AND (END_ALTERNATIVO.SEQENDERECO = NFCAB.SEQENDERECO)LEFT JOIN CIDADE CID_END_ALTERNATIVO
ON (CID_END_ALTERNATIVO.CIDADE = END_ALTERNATIVO.CIDADE)LEFT JOIN UF UF_END_ALTERNATIVO
ON (UF_END_ALTERNATIVO.UF = CID_END_ALTERNATIVO.UF)LEFT JOIN CONTAMOV DEST
ON (DEST.NUMEROCM = COALESCE(NFCAB.CLIENTEIMP, NFCAB.NUMEROCM))LEFT JOIN CIDADE CIDDEST
ON (DEST.CIDADE = CIDDEST.CIDADE)LEFT JOIN UF UFDEST
ON (UFDEST.UF = CIDDEST.UF)LEFT JOIN CONTAMOV PRESTADOR
ON (PRESTADOR.NUMEROCM = NFTRANSP.PRESTADOR)LEFT JOIN CIDADE CIDPRE
ON (CIDPRE.CIDADE = PRESTADOR.CIDADE)LEFT JOIN NFCABIMPOSTO ICMS
ON (ICMS.ESTAB = NFCAB.ESTAB)
AND (ICMS.SEQNOTA = NFCAB.SEQNOTA)
AND (ICMS.IMPOSTO = CONFAGROE.IMPOSTOICMS)
AND ((EMI.MSGSIMPLES IS NULL) OR (EMI.MSGSIMPLES = CHR(32)))/LEFT JOIN NFCABIMPOSTO IPI
ON (IPI.ESTAB = NFCAB.ESTAB)
AND (IPI.SEQNOTA = NFCAB.SEQNOTA)
AND (IPI.IMPOSTO = CONFAGROE.IMPOSTOIPI)/LEFT JOIN NFITEMIMPOSTO NFITEMIMPOSTO_ICMS
ON (NFITEMIMPOSTO_ICMS.ESTAB = NFITEM.ESTAB)
AND (NFITEMIMPOSTO_ICMS.SEQNOTA = NFITEM.SEQNOTA)
AND (NFITEMIMPOSTO_ICMS.SEQNOTAITEM = NFITEM.SEQNOTAITEM)
AND (NFITEMIMPOSTO_ICMS.IMPOSTO = CONFAGROE.IMPOSTOICMS)
AND ((EMI.MSGSIMPLES IS NULL) OR (EMI.MSGSIMPLES = CHR(32)))LEFT JOIN NFITEMIMPOSTO NFITEMIMPOSTO_IPI
ON (NFITEMIMPOSTO_IPI.ESTAB = NFITEM.ESTAB)
AND (NFITEMIMPOSTO_IPI.SEQNOTA = NFITEM.SEQNOTA)
AND (NFITEMIMPOSTO_IPI.SEQNOTAITEM = NFITEM.SEQNOTAITEM)
AND (NFITEMIMPOSTO_IPI.IMPOSTO = CONFAGROE.IMPOSTOIPI)WHERE (NFCAB.ESTAB = :ESTAB) AND (NFCAB.SEQNOTA)
-
AutorPosts
- Você deve fazer login para responder a este tópico.