Bom dia grupo, sou iniciante no Oracle, Estou usando o SQL Developer para construir os scripts/querys e estou com dúvida de como fazer uma procedure aqui. Fiz um exemplo simples no SQL Server do que preciso fazer no Oracle 9i. Tentei fazer uma usando somente campos numéricos e usando uma tabela temporária, ela roda grava o resultado incrementado em um while, mas não conseguir fazer um incremento numa variável varchar e nem conseguir fazer com que a procedure retorne os dados logo após o processamento.
Segue abaixo em preto o que está funcionando no SQL Server e representa um exemplo do que estou precisando fazer no Oracle e mais abaixo em Azul o que já fiz no Oracle e ainda não conseguir trabalhar com a variável/parâmetro da procedure tipo varchar (incrementar data armazenada como texto) e nem fazer com que ao chamar a procedure ela alimente a tabela temporária e já em seguida retorne o resultado através de um select. Perguto isto é possível? Alguém poderia me ajudar? Estou realmente precisando... desde já agradeço. -------------- código da procedure no SQL Server CREATE PROCEDURE TESTE2 AS DECLARE @DATA1 VARCHAR(08), @DATA2 VARCHAR(08), @DATAAUX VARCHAR(08) SET @DATA1 = '20060801' SET @DATA2 = '20060805' SET @DATAAUX = @DATA1 DECLARE @VARTAB TABLE (DATA VARCHAR(08)) SET NOCOUNT ON WHILE @DATAAUX <= @DATA2 BEGIN INSERT INTO @VARTAB (DATA) VALUES (@DATAAUX) SET @DATAAUX = CONVERT(VARCHAR,DATEADD(DD,1,CONVERT(DATETIME,@DATAAUX,113)),112) END SET NOCOUNT OFF SELECT * FROM @VARTAB -------------------------------------------- --execução da procedure no SQL Server EXEC TESTE2 -------------------------------------------- -- retorno / resultado no SQL Server DATA -------- 20060801 20060802 20060803 20060804 20060805 (5 row(s) affected) ----------------------------------------------------- o que já consegui fazer no Oracle 9i --CREATE TABLE TESTE(NUMERO NUMERIC(2)); create or replace procedure teste1( V_DATA1 int, V_DATA2 int) is begin declare v_aux int; begin v_aux := v_data1; delete teste; while v_aux <= v_DATA2 loop INSERT INTO TESTE(NUMERO) VALUES(v_aux); DBMS_OUTPUT.PUT_LINE(V_DATA1); v_aux := V_aux + 1; end loop; end; end; ------------------------------- execucao call teste1(1,5) * nao retorna resultado ---- só vejo o resultado ao numa segunda etapa executar o comando select na tabela temporária SELECT * FROM TESTE Resultado 1 2 3 4 5 Att. -- Luiz Scarpelli [As partes desta mensagem que não continham texto foram removidas] -------------------------------------------------------------------------------------------------------------------------- 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