Erro ORA-01830: somente no sistema

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
wollyrrbn
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 10
Registrado em: Seg, 14 Set 2009 3:40 pm
Localização: Santos - SP

Ola, estou desenvolvendo um form, mas quando rodo pelo oracle forms, ele funciona normalmente.
Porem, quando estou rodando diretamente pelo 'sistema' por 'fora', da o erro
ORA-01830: date format picture ends before converting entire input string

a view que estou utilizando é essa... Por favor, poderiam me ajudar? já tentei de tudo... :cry:

Obrigado!

Selecionar tudo

CREATE OR REPLACE VIEW dbamv.vdic_solic_consignado (
   cd_atendimento,
   dt_atend,
   cd_paciente,
   nm_paciente,
   cd_convenio,
   nm_convenio,
   cd_con_pla,
   ds_con_pla,
   cd_unid_int,
   ds_unid_int,
   cd_setor,
   nm_setor,
   cd_aviso_cirurgia,
   dt_cirurgia,
   ds_cirurgia,
   nm_prestador,
   cd_mvto_estoque,
   cd_itmvto_estoque,
   dt_mvto,
   cd_estoque,
   ds_estoque,
   cd_produto,
   ds_produto,
   ds_unidade,
   qt_movimentacao,
   cd_lote,
   dt_validade,
   cd_fornecedor,
   nm_fornecedor,
   usuario,
   hr_mvto,
   usuario_mvto,
   valor_ultima_entrada_conv,
   valor_consig_aux,
   importado )
AS
Select distinct ate.cd_atendimento
      ,to_char(dt_atendimento, 'DD/MM/YYYY') dt_atend
      ,pa.cd_paciente
      ,pa.nm_paciente
      ,con.cd_convenio
      ,con.nm_convenio
      ,cp.cd_con_pla
      ,cp.ds_con_pla
      ,ui.cd_unid_int
      ,ui.ds_unid_int
      ,st.cd_setor
      ,st.nm_setor
      ,es.cd_aviso_cirurgia
      ,to_char(ac.dt_realizacao, 'DD/MM/YYYY hh24:mi:ss') dt_cirurgia
      ,cir.ds_cirurgia
      ,prest.nm_prestador
      ,es.cd_mvto_estoque
      ,it.cd_itmvto_estoque
      ,to_char(dt_mvto_estoque, 'DD/MM/YYYY') dt_mvto
      ,est.cd_estoque
      ,est.ds_estoque
      ,pr.cd_produto
      ,pr.ds_produto
      ,up.ds_unidade
      ,(it.qt_movimentacao) - (select nvl(sum(qt_movimentacao), 0)
                            from mvto_estoque m
                                  ,itmvto_estoque i
                            where m.cd_mvto_estoque = i.cd_mvto_estoque
                            and tp_mvto_estoque = 'C'
                            and cd_produto = it.cd_produto
                            and cd_atendimento = ate.cd_atendimento
                            and cd_lote = it.cd_lote
                            and m.cd_mvto_estoque > es.cd_mvto_estoque 
                            and qt_movimentacao < 0 ) qt_movimentacao   
      ,it.cd_lote
      ,to_char(it.dt_validade) dt_validade
      ,fo.cd_fornecedor
      ,nvl(fo.nm_fornecedor, 'Fornecedor não informado') nm_fornecedor
      ,user usuario
      ,to_char(es.hr_mvto_estoque,'HH24:mi:ss')                                                hr_mvto
      ,es.cd_usuario usuario_mvto

      , (SELECT (B.vl_unitario) 
        FROM DBAMV.ENT_PRO A
            ,DBAMV.ITENT_PRO B
        WHERE A.cd_ent_pro = B.cd_ent_pro
        AND   B.cd_itent_pro = (SELECT MAX(Y.cd_itent_pro)
                                FROM DBAMV.ENT_PRO X
                                    ,DBAMV.ITENT_PRO Y
                                    ,DBAMV.ATENDIME Z
                               WHERE X.cd_ent_pro = Y.cd_ent_pro
                                 AND X.cd_atendimento = Z.cd_atendimento
                                 AND Z.cd_convenio = ate.cd_convenio
                                 AND Y.cd_produto = it.cd_produto
                                 AND X.cd_fornecedor = fo.cd_fornecedor)) VALOR_ULTIMA_ENTRADA_CONV

      ,nvl((select to_number(z.vl_produto)
        from dbamv.consig_auxiliar z
        where z.cd_produto = it.cd_produto
        and   z.cd_convenio = ate.cd_convenio
        and   z.cd_fornecedor = fo.cd_fornecedor
        and   trunc(to_date(z.dt_vigencia, 'dd/mm/yyyy')) = (select max(trunc(to_date(x.dt_vigencia, 'dd/mm/yyyy')))
                                        from dbamv.consig_auxiliar x
                                        where x.cd_produto = z.cd_produto
                                        and   x.cd_convenio = z.cd_convenio
                                        and   x.cd_fornecedor = z.cd_fornecedor
                                        and   trunc(to_date(x.dt_vigencia, 'dd/mm/yyyy')) <= trunc(es.dt_mvto_estoque))),0) VALOR_CONSIG_AUX

        ,DECODE(aux_dti.cd_mvto_estoque, NULL, 'não'
                                             , 'SIM') IMPORTADO

  from dbamv.mvto_estoque es
      ,dbamv.itmvto_estoque it
      ,dbamv.produto pr
      ,dbamv.atendime ate
      ,dbamv.convenio con
      ,dbamv.con_pla cp
      ,dbamv.paciente pa
      ,dbamv.estoque est
      ,dbamv.setor st
      ,dbamv.fornecedor fo
      ,dbamv.uni_pro up
      ,dbamv.aviso_cirurgia ac
      ,dbamv.cirurgia_aviso ca
      ,dbamv.cirurgia cir
      ,dbamv.prestador_aviso pv
      ,dbamv.ati_med ati
      ,dbamv.prestador prest
      ,dbamv.unid_int ui
      ,dbamv.MVTO_ESTOQUE_CONSIG_AUX_DTI aux_dti
 where es.cd_mvto_estoque = it.cd_mvto_estoque
   and it.cd_produto = pr.cd_produto
   and es.cd_atendimento = ate.cd_atendimento
   and ate.cd_convenio = con.cd_convenio
   and ate.cd_convenio = cp.cd_convenio
   and ate.cd_con_pla = cp.cd_con_pla
   and ate.cd_paciente = pa.cd_paciente
   and es.cd_estoque = est.cd_estoque
   and es.cd_setor = st.cd_setor
   and it.cd_fornecedor = fo.cd_fornecedor(+)
   and up.cd_uni_pro = it.cd_uni_pro
   and ac.cd_aviso_cirurgia(+) = es.cd_aviso_cirurgia
   and ac.cd_aviso_cirurgia = ca.cd_aviso_cirurgia(+)
   and ca.cd_cirurgia = cir.cd_cirurgia (+)
   and ca.cd_aviso_cirurgia = pv.cd_aviso_cirurgia(+)
   and ca.cd_cirurgia = pv.cd_cirurgia(+)
   and pv.cd_ati_med = ati.cd_ati_med(+)
   and ui.cd_unid_int(+) = es.cd_unid_int
   and nvl(ca.sn_principal, 'S') = 'S'
   and nvl(pv.sn_principal, 'S') = 'S'
   and nvl(tp_funcao, 'C') = 'C'
   and es.tp_mvto_estoque <> 'C'
   and pv.cd_prestador = prest.cd_prestador(+)
   and (sn_consignado = 'S' or ((pr.ds_produto like '%(R)%' or pr.ds_produto like '%(E)%') and con.cd_convenio not in (1, 2, 326, 335)))
   and es.cd_mvto_estoque = aux_dti.cd_mvto_estoque(+)
order by nm_paciente, nm_fornecedor, ds_produto
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

wollyrrbn,

Bom dia,

Por favor, faça o seguinte teste:

1) Abrir uma sessão SQL*Plus exatamente no servidor onde se encontra o forms;
2) Execute a querie da View (creio que vai funcionar);
3) Abra uma sessão SQL*Plus na estação de trabalho;
4) Execute novamente a querie (desconfio que vai dar erro);

É provável que as configurações de DATA no servidor e na sua estação de trabalho se encontrem diferentes.

Execute então select PARAMETER,VALUE from NLS_SESSION_PARAMETERS;, tanto na sessão aberta no servidor FORMS como na sua estação de trabalho.

Se estiverem diferentes, especialmente no formato de data, experimente fazer com que a sessão que apresenta erro disponha das mesmas configurações de data da sessão que executa sem erros.

Para isso, use o comando ALTER SESSION set <parametro> = <valor>;

Abraços,

Sergio Coutinho
wollyrrbn
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 10
Registrado em: Seg, 14 Set 2009 3:40 pm
Localização: Santos - SP

Grande ST_COUTINHO, você é o cara!!!

igualei os parametros e funcionou!

Obrigado de verdade!!! :-o
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Que ótimo que conseguiu resolver !
Abraços !
Sergio
Responder
  • Informação