EXECUTE SELECT * FROM DUAL - ERRO ORA-06502

Scripts Diversos para o Oracle SQL*Plus. (Relacionado a ferramenta Oracle SQL*Plus, para questões de SQL, usar o forum SQL)
Responder
jucruzjc
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 57
Registrado em: Qui, 11 Jan 2007 10:26 am
Localização: Santa Bárbaba d'Oeste
--
Juliana Cr. Cruz
Analista Desenvolvedor Oracle

Bom dia pessoas!!

To com um probleminha e não sei mais o que fazer...
Ao executar o script abaixo... ele dá erro! alguém poderia me ajudar?

Selecionar tudo

variable   vdatainicio   varchar2(11);
execute select '01-' || to_char( add_months(sysdate,-1),'MON-YYYY') into :vdatainicio from dual;
ORA-06502: PL/SQL: numeric or value error: character string buffer too small

Bjão!
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Jú, tudo bem?
Tenta mudar o tamanho da tua variável pra 20, por exemplo, e faz um teste ai, pois aqui funcionou corretamente.

Selecionar tudo

variable   vdatainicio   varchar2(20); 
execute select '01-' || to_char( add_months(sysdate,-1),'MON-YYYY') into :vdatainicio from dual; 
Qualquer coisa, manda pra gente.
jucruzjc
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 57
Registrado em: Qui, 11 Jan 2007 10:26 am
Localização: Santa Bárbaba d'Oeste
--
Juliana Cr. Cruz
Analista Desenvolvedor Oracle

OI Trevisolli!!!
Tudo bem sim e ti?

Então.. rodei e agora deu esse erro:

Selecionar tudo

[1]: (Error): Error executing statement: OCI_INVALID_HANDLE
:cry:


Abraços!
jucruzjc
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 57
Registrado em: Qui, 11 Jan 2007 10:26 am
Localização: Santa Bárbaba d'Oeste
--
Juliana Cr. Cruz
Analista Desenvolvedor Oracle

Oi...
Sô eu dinovu!

Rodei novamente aqui e ainda continua o erro do buffer too small....
eu num sei mais o que fazer!

Selecionar tudo

execute select '&1' into :v_planta from dual;
execute select '01-' || to_char( add_months(sysdate,-1),'MON-YYYY') into :vdatainicio from dual;
execute select  to_char(last_day(add_months(sysdate,-1)),'DD-MON-YYYY') into :vdatafim from dual;

Selecionar tudo

[2]: (Error): Error executing statement: ORA-06502: PL/SQL: numeric or value error ORA-06512: at line 2
[3]: (Error): Error executing statement: ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line 2
[4]: (Error): Error executing statement: ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line 2

Obrigada pela ajuda!!!
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Jú, tem como você nos passar a declaração das variáveis pra fazer um teste?
jucruzjc
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 57
Registrado em: Qui, 11 Jan 2007 10:26 am
Localização: Santa Bárbaba d'Oeste
--
Juliana Cr. Cruz
Analista Desenvolvedor Oracle

Oie!!

Tem sim!

Selecionar tudo

variable   v_planta      varchar2(50);
variable   vdatainicio   varchar2(20);
variable   vdatafim      varchar2(20);

execute select '&1' into :v_planta from dual;
execute select '01-' || to_char( add_months(sysdate,-1),'MON-YYYY') into :vdatainicio from dual;
execute select  to_char(last_day(add_months(sysdate,-1)),'DD-MON-YYYY') into :vdatafim from dual;

Obrigadinha pela ajuda!!!

bjão!
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Jú, td bem?

Testei todos os casos aqui novamente e ok, conforme abaixo:

Selecionar tudo


variable   v_planta      varchar2(50); 

-- sem aspas simples no &1
execute select &1 into :v_planta from dual; 
-- valor passado para &1: to_date('01/01/2000','dd/mm/rrrr')
select :v_planta from dual;



-- segundo caso
SQL> variable   vdatainicio   varchar2(20); 
SQL> execute select '01-' || to_char( add_months(sysdate,-1),'MON-YYYY') into :vdatainicio from dual
;

PL/SQL procedure successfully completed.

SQL> select :vdatainicio from dual;

:VDATAINICIO
--------------------------------
01-JAN-2009

SQL> 



-- terceiro caso
SQL> variable   vdatafim      varchar2(20); 
SQL> 
SQL> execute select  to_char(last_day(add_months(sysdate,-1)),'DD-MON-YYYY') into :vdatafim from dua
l;

PL/SQL procedure successfully completed.

SQL> select :vdatafim from dual;

:VDATAFIM
--------------------------------
31-JAN-2009

SQL> 
SQL> 
Tem como testar ai novamente desta forma?
Caso não dê certo, teríamos que verificar talvez algo no teu ambiente ai.
Depois, caso não dê certo, passe pra gente o teu ambiente pra testar no mesmo esquema, pode ser?

Bjaum,
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes