[oracle_br] numeric or value error: character string buffer too small
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
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
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
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
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
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
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
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
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
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
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
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