[oracle_br] numeric or value error: character string buffer too small

2008-04-14 Por tôpico Rogerio Zander
Amigos , 
Estou executando a procedure abaixo e esta dando um erro de tamanho
(numeric or value error: character string buffer too small ) e este
erro ocorre quando dentro do loop a variavel Mensaggem recebe ela mais
umpa parte do codigo . 
Ja tentei com o Tipo de variavel Clob e varchar2 e nenhuma delas
resolveu o meu problema 
Voces podem me ajudar ou acham que o erro nao ´o tamanho da variavel .



Segue tb um Desc desta tabela , nao tem nenhum campo com tamanho grande 


NameNull?Type
---  
CN_ID_ASSINATURA NUMBER(14)
CANALCHAR(3)
DT_CONCORDANCIA  DATE
CNL  VARCHAR2(0)
DDD  VARCHAR2(3)
TELEFONE VARCHAR2(10)
SEG  VARCHAR2(0)
ES   VARCHAR2(0)
ATE  VARCHAR2(0)
PABX VARCHAR2(0)
TIPO_ACAOVARCHAR2(0)
ACAO_DIFERENCIADAVARCHAR2(0)
RE_VENDEDOR  VARCHAR2(5)
NOME_VENDEDORVARCHAR2(30)
CPF_VENDEDOR VARCHAR2(0)
RE_AUDITOR   VARCHAR2(0)
TIPO_COMPRA  VARCHAR2(0)
TIPO_INSTALACAO  VARCHAR2(0)
PRODUTO  VARCHAR2(12)
VERSAO   VARCHAR2(20)
PRODUTO_ADICIONALVARCHAR2(0)
ORIGEM_MODEM VARCHAR2(0)
NUM_PED_PARCEIROSVARCHAR2(0)
TIPO_MODEM   VARCHAR2(0)
PROMOCAO_PRINCIPAL   NUMBER(13,2)
PROMOCAO_ADICIONAL   VARCHAR2(0)
PGTO_HABILITACAO VARCHAR2(0)
NUM_OS   VARCHAR2(0)
DT_EMISSAO_OSVARCHAR2(0)
DT_AGENDAVARCHAR2(0)
PROBLEMA_DE_EMISSAO  VARCHAR2(0)
USER_NAME_PROVEDOR   VARCHAR2(0)
IRLA VARCHAR2(0)
NOME VARCHAR2(0)
RAMALVARCHAR2(0)






create or replace procedure PRC_TESTE is
V_MENSAGEM LONG;
v_emailvarchar2(100);

  CURSOR ace IS
 SELECT *
 FROM
 INDIC_ADM_ACESSO 
 WHERE cn_nivel >=5;
 
c_ace ace%ROWTYPE;


  CURSOR ace1 IS
  select 
  CN_ID_ASSINATURA,
  CANAL,
  DT_CONCORDANCIA,
  DDD,
  TELEFONE,
  RE_VENDEDOR,
  NOME_VENDEDOR,
  PRODUTO,
  VERSAO,
  PROMOCAO_PRINCIPAL
  from
  ENVIO_BACKLOG
  WHERE dt_concordancia = TRUNC(SYSDATE) -5;
  
c_ace1 ace1%ROWTYPE;


 -- INICIO PROCEDURE

BEGIN

V_MENSAGEM:= NULL;


v_mensagem := '



  
  CN_ID_ASSINATURA
  CANAL
  DT_CONCORDANCIA
  CNL
  DDD
  TELEFONE
  SEG
  ES
  AT
  PABX
  TIPO_ACAO
  ACAO_DIFERENCIADA
  RE_VENDEDOR
  NOME_VENDEDOR
  CPF_VENDEDOR
  RE_AUDITOR
  TIPO_COMPRA
  TIPO_INSTALACAO
  PRODUTO
  VERSAO
  PRODUTO_ADICIONAL
  ORIGEM_MODEM
  NUM_PED_PARCEIROS
  TIPO_MODEM
  PROMOCAO_PRINCIPAL
  PROMOCAO_ADICIONAL
  PGTO_HABILITACAO
  NUM_OS
  DT_EMISSAO_OS
  DT_AGENDA
  PROBLEMA_DE_EMISSAO
  USER_NAME_PROVEDOR
  IRLA
  NOME
  RAMAL
  ';
  
 
 BEGIN
   OPEN ace1;
   LOOP
   FETCH ace1 INTO c_ace1;
   EXIT WHEN ace1%NOTFOUND;

V_MENSAGEM := V_MENSAGEM || '
' ||c_ace1.cn_id_assinatura || '
' ||c_ace1.canal || '
' ||c_ace1.dt_concordancia || '

' ||c_ace1.ddd || '
' ||c_ace1.telefone || '






' ||c_ace1.re_vendedor|| '
' ||c_ace1.nome_vendedor|| '




' ||c_ace1.produto|| '
' ||c_ace1.versao|| '




' ||c_ace1.promocao_principal|| '









  
  ';

   END LOOP;
   
V_MENSAGEM := V_MENSAGEM || ' 

';

   
   CLOSE ace1;
  END;
-- FAZ O ENVIO DO EMAIL 

 BEGIN
   OPEN ace;
   LOOP
FETCH ace INTO c_ace;
EXIT WHEN ace%NOTFOUND;

v_email := c_ace.an_email;

SEND_MAIL('[EMAIL PROTECTED]',V_EMAIL ,'Analitico de
Envio '|| TO_CHAR (TRUNC(SYSDATE),'dd/mm/') ,V_MENSAGEM );

   END LOOP;
   CLOSE ace;
  END;

V_MENSAGEM:= NULL;


end PRC_TESTE;



[oracle_br] Cancelar Execucao de Procedure pelo SQLPLUS

2007-11-29 Por tôpico Rogerio Zander
Ola Pessoal , 
Estou com uma duvida, 
Tem como ue para a execucao de Uma Procedure que esta rodando no
sqlplus em meu usuario  sem que eu tenha permissao de  DBA? 

Tentei com CTRL + BREAK porem ele fecha o sqlplus porem a procedure
continua em execucao . 


Abs 
Rogerio 




[oracle_br] JOB

2006-08-18 Por tôpico Rogerio Zander
Ola amigos ,
Estou com uma duvida em relacao a Job . 

Eu criei um job  porem ele nao executa sozinho .

Esta é minha duvida. 
ele vai executar sozinho ?
com odevo fazer para ele executar .


begin
  sys.dbms_job.submit(job => :job,
  what => 'BEGIN

   DELETE FROM  TAB_MIGRACAO ;

   commit;

   INSERT
   INTO
   TAB_MIGRACAO
   select
   *
   from
   TABULACAO_MIGRACAO_RIO

  COMMIT;


   EXCEPTION
 WHEN NO_DATA_FOUND THEN
   Null;
 WHEN OTHERS THEN
   Null;
END;',
  next_date => to_date('18-08-2006 10:50:32',
'dd-mm- hh24:mi:ss'),
  interval => 'SYSDATE+(1/24)');
  commit;
end;
/



Atc, 
Rogerio







--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.com.br/
__
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine  
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





[oracle_br] Re: utilizacao do Processador por sessao

2006-08-04 Por tôpico Rogerio Zander
Obrigado Plea Explicacao Chiappa .

So mais uma duvida , entao qua la melhor forma de eu "saber" quem esta
rodando algo que esta dimunindo a performance no meu servidor , existe
forma  facil de eu ver isto ? 


Abs 
Rogerio  


--- Em oracle_br@yahoogrupos.com.br, "jlchiappa" <[EMAIL PROTECTED]> escreveu
>
> Absolutamente não, o Oracle não gerencia recursos( ie, CPU, RAM, etc), 
> ele só usa o que o SO e o hardware dão, o que o Oracle registra é 
> quanto TEMPO de CPU uma sessão já usou, na view V$SESSTAT são as 
> estatísticas parse time cpu, recursive cpu usage, CPU used by this 
> session, CPU used when call started , consulte os manuais de Admin que 
> acha as refs sobre ela. O que o bd Oracle não "sabe" porém, é quanto 
> de "poder de CPU" a máquina tinha no instante, portanto não sabe 
> relacionar quantos % de CPu esses X segundos representaram.
> 
> []s
> 
>  Chiappa 
> --- Em oracle_br@yahoogrupos.com.br, "Rogerio Zander" <[EMAIL PROTECTED]> 
> escreveu
> >
> > Ola Amigos ,
> > existe em alguma tabela interna do Oracle o % de processamento que
> > cada Sessao Esta utilizando ? 
> > 
> > 
> > 
> > Abs 
> > Rogerio
> >
>






--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.com.br/
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





[oracle_br] utilizacao do Processador por sessao

2006-08-04 Por tôpico Rogerio Zander
Ola Amigos ,
existe em alguma tabela interna do Oracle o % de processamento que
cada Sessao Esta utilizando ? 



Abs 
Rogerio 






--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.com.br/
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





[oracle_br] PERMISSAO de Select na View V_$session

2006-07-31 Por tôpico Rogerio Zander
Ola Amigos ,
gostaria de saber se tem eu dar permissao a um Usuario Comum de leitura 
na v_$session . 


Atc, 
Rogerio 






--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





[oracle_br] executar um programa externo dentro de uam procedure

2006-03-08 Por tôpico Rogerio Zander
Ola Pessoal ,
estou precisando de uam ajuda ,
Tenho um processo que me loga os processos que estao sendo executados
em uma tabela de controle . Ate ai esta funcionado normal , porem
agora eu queria que a cada processo executado , apos esta procedure
ser executada , ele me mande uma mensagem ( via net send ) dizendo que
o processo foi executado .

Tentei inserir o comando "host"  porme se eu faco isto manualmente
fora  da procedure ele funciona normal , porem dentro dela nao
funciona , voces poderiam me ajudar ..
Abs 
rogerio   




CREATE  OR REPLACE procedure PRC_LOG_PROC1 (DT_INI  in DATE ,
DT_FIM  in DATE ,
CA_PROCESSO in
VARCHAR2) is
w_DT_INI date ;
w_DT_FIM date ;
w_CA_PROCESSO varchar2(50);

begin
w_DT_INI := dt_ini ;
w_DT_FIM := dt_fim ;
w_CA_PROCESSO:= trim(substr(CA_PROCESSO,0,49)) ;

  insert into CTRL_PROCESSOS_EXECUTADOS(dt_inicio,dt_fim,processo)
values (w_DT_INI,w_DT_FIM,w_CA_PROCESSO);
  commit;
  
  HOST "net send 10.10.5.239 processo executado" &w_CA_PROCESSO. 

end;












--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




[oracle_br] Re: PLS-00372: In a procedure, RETURN statement cannot contain an expression

2005-07-15 Por tôpico Rogerio Zander
Entendi ..


Abs 
Rogerio 

--- Em oracle_br@yahoogrupos.com.br, [EMAIL PROTECTED] 
escreveu
> Rogério,
> acho que vc fez uma confusão aí... na declaração da função vc 
colocou que 
> irá retornar um número
> e depois me coloca na função a atribuição de um cursor no retorno 
da 
> função ??? confuso...
> 
> porque vc não usa o que todo mundo usa ?
> 
> select campo into variável from tabela where condições 
> 
> aí atribui o valor da variável no retorno da função e pronto !
> 
> function fnc_receita_cadastrada (v_cn_id_assinatura   number
>  ) return NUMBER is
> begin
>   declare
> v_receita number(13,2);
> 
>   begin
> select sum(b.vl_prs_mens)  AS vlr_mens
> into v_receita
> from int_bil_ass_prs_prodserv b,
> int_bil_prs_prodserv c
> where
> b.ca_prs = c.ca_prs
> and c.cn_grp_contabil in ('1','13','27')
> and cn_sts_prs_ass = '1'
> and cn_id_assinatura = v_cn_id_assinatura;
> 
> return v_receita ;
>   end;
> end;
> 
> 
> Abraço,
> Fernandes.
> 
> 
> 
> 
> 
> "Rogerio Zander" <[EMAIL PROTECTED]>
> Sent by: oracle_br@yahoogrupos.com.br
> 15/07/2005 17:09
> Please respond to oracle_br
> 
>  
> To: oracle_br@yahoogrupos.com.br
> cc: 
> Subject:[oracle_br] PLS-00372: In a procedure, 
RETURN statement cannot contain an 
> expression
> 
> 
> Pessoal ,
> Estou com um problema ,
> Estou criando esta function , e esta dando um erro o seguinte erro ,
> 
> function fnc_receita_cadastrada (v_cn_id_assinatura   number
>  ) return NUMBER is
> begin
> declare
> v_receita number(13,2);
> v_cn_id_assinaturanumber;
> --
> cursor c1 is
> select sum(b.vl_prs_mens)  AS vlr_mens
> from int_bil_ass_prs_prodserv b,
>  int_bil_prs_prodserv c
> where
>   b.ca_prs = c.ca_prs
>   and c.cn_grp_contabil in ('1','13','27')
>   and cn_sts_prs_ass = '1'
>   and cn_id_assinatura = v_cn_id_assinatura;
> --
> begin
> open c1;
> fetch c1 into v_receita;
> return v_receita ;
> end;
> end;
> 
> 
> 
> 
> 
> ORA-06550: line 19, column 1:
> PLS-00372: In a procedure, RETURN statement cannot contain an 
> expression
> ORA-06550: line 19, column 1:
> PL/SQL: Statement ignored
> 
> 
> 
> 
> 
> 
__
> 
> Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
> Falar com os Moderadores:([EMAIL PROTECTED])
> Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar 
> 
__
 
> Links do Yahoo! Grupos
> 
> 
> 
> 
>  
> 
> 
> 
> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]




__

Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
Falar com os Moderadores:([EMAIL PROTECTED])
Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar 
__ 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




[oracle_br] PLS-00372: In a procedure, RETURN statement cannot contain an expression

2005-07-15 Por tôpico Rogerio Zander
Pessoal ,
Estou com um problema ,
Estou criando esta function , e esta dando um erro o seguinte erro ,

function fnc_receita_cadastrada (v_cn_id_assinatura   number
 ) return NUMBER is
begin
declare
v_receita number(13,2);
v_cn_id_assinaturanumber;
--
cursor c1 is
select sum(b.vl_prs_mens)  AS vlr_mens
from int_bil_ass_prs_prodserv b,
 int_bil_prs_prodserv c
where
  b.ca_prs = c.ca_prs
  and c.cn_grp_contabil in ('1','13','27')
  and cn_sts_prs_ass = '1'
  and cn_id_assinatura = v_cn_id_assinatura;
--
begin
open c1;
fetch c1 into v_receita;
return v_receita ;
end;
end;





ORA-06550: line 19, column 1:
PLS-00372: In a procedure, RETURN statement cannot contain an 
expression
ORA-06550: line 19, column 1:
PL/SQL: Statement ignored





__

Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
Falar com os Moderadores:([EMAIL PROTECTED])
Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar 
__ 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




RES: [oracle_br] re FUNCAO VARIAVEL NAO DECLARADA

2005-07-08 Por tôpico Rogerio Zander
ok 
valew Dorian


Abs 
Rogerio 




-Mensagem original-
De: oracle_br@yahoogrupos.com.br 
[mailto:[EMAIL PROTECTED] Em nome de Dorian Anderson 
Soutto
Enviada em: sexta-feira, 8 de julho de 2005 14:17
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] re FUNCAO VARIAVEL NAO DECLARADA


  1   CREATE or replace FUNCTION FNC_FX_RECEITA(P_RECEITA IN NUMBER)
  2   RETURN number IS
  3   V_RECEITA NUMBER(13,2) ;
  4   FAIXA INTEGER ;
  5   BEGIN
  6   V_RECEITA := P_RECEITA;
  7 IFV_RECEITA < 100 THEN FAIXA := 0;
  8 ELSIF V_RECEITA BETWEEN 100  AND  200 THEN FAIXA := 100;
  9 ELSIF V_RECEITA BETWEEN 201  AND  300 THEN FAIXA := 200;
10 ELSIF V_RECEITA BETWEEN 301  AND  400 THEN FAIXA := 300;
11 ELSIF V_RECEITA BETWEEN 401  AND  500 THEN FAIXA := 400;
12 ELSIF V_RECEITA BETWEEN 501  AND  600 THEN FAIXA := 500;
13 ELSIF V_RECEITA BETWEEN 601  AND  700 THEN FAIXA := 600;
14 ELSIF V_RECEITA BETWEEN 701  AND  800 THEN FAIXA := 700;
15 ELSIF V_RECEITA BETWEEN 801  AND  900 THEN FAIXA := 800;
16 ELSIF V_RECEITA BETWEEN 901  AND 1000 THEN FAIXA := 900;
17 ELSIF V_RECEITA BETWEEN 1001 AND 1100 THEN FAIXA := 1000;
18 ELSIF V_RECEITA BETWEEN 1101 AND 1200 THEN FAIXA := 1100;
19 ELSIF V_RECEITA BETWEEN 1201 AND 1300 THEN FAIXA := 1200;
20 ELSIF V_RECEITA BETWEEN 1301 AND 1400 THEN FAIXA := 1300;
21 ELSIF V_RECEITA BETWEEN 1401 AND 1500 THEN FAIXA := 1400;
22 ELSIF V_RECEITA BETWEEN 1501 AND 2000 THEN FAIXA := 2000;
23 ELSIF V_RECEITA BETWEEN 2001 AND 2500 THEN FAIXA := 2500;
24 ELSIF V_RECEITA BETWEEN 2501 AND 3000 THEN FAIXA := 3000;
25 ELSIF V_RECEITA BETWEEN 3001 AND 3500 THEN FAIXA := 3500;
26 ELSIF V_RECEITA BETWEEN 3501 AND 4000 THEN FAIXA := 4000;
27 ELSIF V_RECEITA > 4000 THEN FAIXA := 5000;
28 ELSE  FAIXA := 0; END IF;
29 RETURN FAIXA;
30   END;
31  /

Function created.

select FNC_FX_RECEITA(550) from dual;

FNC_FX_RECEITA(550)
---
500

  - Original Message - 
  From: Rogerio Zander 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Friday, July 08, 2005 1:57 PM
  Subject: [oracle_br] re FUNCAO VARIAVEL NAO DECLARADA


  Pessoal 
  Fiz as Alteracoes porem agora esta dando um outro erro 


  ORA-06550: line 30, column 3:
  PLS-00372: In a procedure, RETURN statement cannot contain an 
  expression
  ORA-06550: line 30, column 3:
  PL/SQL: Statement ignored





  FUNCTION FNC_FX_RECEITA(P_RECEITA IN NUMBER)
  RETURN  INTEGER  IS
  DECLARE  
  V_RECEITA NUMBER(13,2) ;
  FAIXA INTEGER ;
  P_RECEITA NUMBER(13,2) ;
  BEGIN
  V_RECEITA := P_RECEITA;
IFV_RECEITA < 100 THEN FAIXA := 0;
ELSIF V_RECEITA BETWEEN 101  AND  200 THEN FAIXA := 100;
ELSIF V_RECEITA BETWEEN 201  AND  300 THEN FAIXA := 200;
ELSIF V_RECEITA BETWEEN 301  AND  400 THEN FAIXA := 300;
ELSIF V_RECEITA BETWEEN 401  AND  500 THEN FAIXA := 400;
ELSIF V_RECEITA BETWEEN 501  AND  600 THEN FAIXA := 500;
ELSIF V_RECEITA BETWEEN 601  AND  700 THEN FAIXA := 600;
ELSIF V_RECEITA BETWEEN 701  AND  800 THEN FAIXA := 700;
ELSIF V_RECEITA BETWEEN 801  AND  900 THEN FAIXA := 800;
ELSIF V_RECEITA BETWEEN 901  AND 1000 THEN FAIXA := 900;
ELSIF V_RECEITA BETWEEN 1001 AND 1100 THEN FAIXA := 1000;
ELSIF V_RECEITA BETWEEN 1101 AND 1200 THEN FAIXA := 1100;
ELSIF V_RECEITA BETWEEN 1201 AND 1300 THEN FAIXA := 1200;
ELSIF V_RECEITA BETWEEN 1301 AND 1400 THEN FAIXA := 1300;
ELSIF V_RECEITA BETWEEN 1401 AND 1500 THEN FAIXA := 1400;
ELSIF V_RECEITA BETWEEN 1501 AND 2000 THEN FAIXA := 2000;   
ELSIF V_RECEITA BETWEEN 2001 AND 2500 THEN FAIXA := 2500;  
ELSIF V_RECEITA BETWEEN 2501 AND 3000 THEN FAIXA := 3000;  
ELSIF V_RECEITA BETWEEN 3001 AND 3500 THEN FAIXA := 3500;
ELSIF V_RECEITA BETWEEN 3501 AND 4000 THEN FAIXA := 4000; 
ELSIF V_RECEITA > 4000 THEN FAIXA := 5000;
ELSE  FAIXA := 5000 ;
END IF;
RETURN FAIXA ; 
  END;






  ORA-06550: line 30, column 3:
  PLS-00372: In a procedure, RETURN statement cannot contain an 
  expression
  ORA-06550: line 30, column 3:
  PL/SQL: Statement ignored





  
__

  Cancelar assinatura...: [EMAIL PROTECTED]
  Moderadores da lista:Dorian Anderson Soutto 
[EMAIL PROTECTED] 
  Fernanda Damous [EMAIL PROTECTED] 
  Alisson Aguiar [EMAIL PROTECTED]
  
__
  http://br.groups.yahoo.com/group/oracle_br/ 
  
__

  Sair da Lista...: [EMAIL PROTECTED] 



--

  Links do Yahoo! Grupos

a.. Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/
  
b.. Para sair deste grupo, envie um

[oracle_br] re FUNCAO VARIAVEL NAO DECLARADA

2005-07-08 Por tôpico Rogerio Zander
Pessoal 
Fiz as Alteracoes porem agora esta dando um outro erro 


ORA-06550: line 30, column 3:
PLS-00372: In a procedure, RETURN statement cannot contain an 
expression
ORA-06550: line 30, column 3:
PL/SQL: Statement ignored





FUNCTION FNC_FX_RECEITA(P_RECEITA IN NUMBER)
RETURN  INTEGER  IS
DECLARE 
V_RECEITA NUMBER(13,2) ;
FAIXA INTEGER ;
P_RECEITA NUMBER(13,2) ;
BEGIN
V_RECEITA := P_RECEITA;
  IFV_RECEITA < 100 THEN FAIXA := 0;
  ELSIF V_RECEITA BETWEEN 101  AND  200 THEN FAIXA := 100;
  ELSIF V_RECEITA BETWEEN 201  AND  300 THEN FAIXA := 200;
  ELSIF V_RECEITA BETWEEN 301  AND  400 THEN FAIXA := 300;
  ELSIF V_RECEITA BETWEEN 401  AND  500 THEN FAIXA := 400;
  ELSIF V_RECEITA BETWEEN 501  AND  600 THEN FAIXA := 500;
  ELSIF V_RECEITA BETWEEN 601  AND  700 THEN FAIXA := 600;
  ELSIF V_RECEITA BETWEEN 701  AND  800 THEN FAIXA := 700;
  ELSIF V_RECEITA BETWEEN 801  AND  900 THEN FAIXA := 800;
  ELSIF V_RECEITA BETWEEN 901  AND 1000 THEN FAIXA := 900;
  ELSIF V_RECEITA BETWEEN 1001 AND 1100 THEN FAIXA := 1000;
  ELSIF V_RECEITA BETWEEN 1101 AND 1200 THEN FAIXA := 1100;
  ELSIF V_RECEITA BETWEEN 1201 AND 1300 THEN FAIXA := 1200;
  ELSIF V_RECEITA BETWEEN 1301 AND 1400 THEN FAIXA := 1300;
  ELSIF V_RECEITA BETWEEN 1401 AND 1500 THEN FAIXA := 1400;
  ELSIF V_RECEITA BETWEEN 1501 AND 2000 THEN FAIXA := 2000;   
  ELSIF V_RECEITA BETWEEN 2001 AND 2500 THEN FAIXA := 2500;  
  ELSIF V_RECEITA BETWEEN 2501 AND 3000 THEN FAIXA := 3000;  
  ELSIF V_RECEITA BETWEEN 3001 AND 3500 THEN FAIXA := 3500;
  ELSIF V_RECEITA BETWEEN 3501 AND 4000 THEN FAIXA := 4000; 
  ELSIF V_RECEITA > 4000 THEN FAIXA := 5000;
  ELSE  FAIXA := 5000 ;
  END IF;
  RETURN FAIXA ; 
END;






ORA-06550: line 30, column 3:
PLS-00372: In a procedure, RETURN statement cannot contain an 
expression
ORA-06550: line 30, column 3:
PL/SQL: Statement ignored





__

Cancelar assinatura...: [EMAIL PROTECTED]
Moderadores da lista:Dorian Anderson Soutto [EMAIL PROTECTED] 
Fernanda Damous [EMAIL PROTECTED] 
Alisson Aguiar [EMAIL PROTECTED]
__
http://br.groups.yahoo.com/group/oracle_br/ 
__

Sair da Lista...: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




[oracle_br] FUNCAO VARIAVEL NAO DECLARADA

2005-07-08 Por tôpico Rogerio Zander
Amigos 
Estou com um problema ,
Estou tentando criar a funcao abaixo e da o erro que a variavel nao 
esta declara , voces podem me ajudar .

Abs 
Rogerio 



CREATE FUNCTION FNC_FX_RECEITA(P_RECEITA NUMBER(13,2))
RETURN  IS
V_RECEITA NUMBER(13,2) ;
FAIXA INTEGER ;
BEGIN
V_RECEITA := P_RECEITA;
  IFV_RECEITA < 100 THEN FAIXA := 0;
  ELSIF V_RECEITA BETWEEN 100  AND  200 THEN FAIXA := 100;
  ELSIF V_RECEITA BETWEEN 201  AND  300 THEN FAIXA := 200;
  ELSIF V_RECEITA BETWEEN 301  AND  400 THEN FAIXA := 300;
  ELSIF V_RECEITA BETWEEN 401  AND  500 THEN FAIXA := 400;
  ELSIF V_RECEITA BETWEEN 501  AND  600 THEN FAIXA := 500;
  ELSIF V_RECEITA BETWEEN 601  AND  700 THEN FAIXA := 600;
  ELSIF V_RECEITA BETWEEN 701  AND  800 THEN FAIXA := 700;
  ELSIF V_RECEITA BETWEEN 801  AND  900 THEN FAIXA := 800;
  ELSIF V_RECEITA BETWEEN 901  AND 1000 THEN FAIXA := 900;
  ELSIF V_RECEITA BETWEEN 1001 AND 1100 THEN FAIXA := 1000;
  ELSIF V_RECEITA BETWEEN 1101 AND 1200 THEN FAIXA := 1100;
  ELSIF V_RECEITA BETWEEN 1201 AND 1300 THEN FAIXA := 1200;
  ELSIF V_RECEITA BETWEEN 1301 AND 1400 THEN FAIXA := 1300;
  ELSIF V_RECEITA BETWEEN 1401 AND 1500 THEN FAIXA := 1400;
  ELSIF V_RECEITA BETWEEN 1501 AND 2000 THEN FAIXA := 2000;   
  ELSIF V_RECEITA BETWEEN 2001 AND 2500 THEN FAIXA := 2500;  
  ELSIF V_RECEITA BETWEEN 2501 AND 3000 THEN FAIXA := 3000;  
  ELSIF V_RECEITA BETWEEN 3001 AND 3500 THEN FAIXA := 3500;
  ELSIF V_RECEITA BETWEEN 3501 AND 4000 THEN FAIXA := 4000; 
  ELSIF V_RECEITA > 4000 THEN FAIXA := 5000;
  ELSE  FAIXA := 0; END IF;
  RETURN FAIXA;
END;



ERROR at line 2:
ORA-06550: line 2, column 1:
PLS-00201: identifier 'V_RECEITA' must be declared
ORA-06550: line 2, column 1:
PL/SQL: Statement ignored
ORA-06550: line 3, column 9:
PLS-00201: identifier 'V_RECEITA' must be declared
ORA-06550: line 3, column 3:
PL/SQL: Statement ignored
ORA-06550: line 25, column 3:
PLS-00372: In a procedure, RETURN statement cannot contain an 
expression
ORA-06550: line 25, column 3:
PL/SQL: Statement ignored









__

Cancelar assinatura...: [EMAIL PROTECTED]
Moderadores da lista:Dorian Anderson Soutto [EMAIL PROTECTED] 
Fernanda Damous [EMAIL PROTECTED] 
Alisson Aguiar [EMAIL PROTECTED]
__
http://br.groups.yahoo.com/group/oracle_br/ 
__

Sair da Lista...: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html