Procedure no ORACLE
26/10/2009
0
Create Procedure teste (par1 varchar(50), par2 varchar(50))
returning VARCHAR(50) as cod_cliente,VARCHAR(50) as nom_cliente; define vcampo1 varchar(50);
define vcampo2 varchar(50); foreach
select cod_cliente,nom_cliente
into vcampo1,vcampo2
from clientes
where cod_cliente between par1 and par2
return vcampo1,vcampo2 WITH RESUME;
end foreach;
end procedure
Desde já, muito obrigado..!! Renato
Renato Tavares
Posts
02/12/2009
Bruno Batista
caso precise de efetuar um looping, onde não vi a necessidade, fica desse jeito.
Create Or Replace teste (par1 In String,
par2 In String,
codigoCliente Out String,
nomeCliente Out String)
as begin
declare
Cursor C1(filtro1 In String,
filtro2 In String) is
select cod_cliente,
nom_cliente
from clientes
where cod_cliente between filtro1 and filtro2;
begin
for Ce1 in C1(par1, par2) loop
codigoCliente := Ce1.Cod_Cliente;
nomeCliente := Ce1.Nom_Cliente;
end loop;
end teste;
02/12/2009
Bruno Batista
caso não precise de efetuar um looping, fica desta forma.
Create Or Replace teste (par1 In String,
par2 In String,
codigoCliente Out String,
nomeCliente Out String)
as begin
select cod_cliente,
nom_cliente
Into codigoCliente,
nomeCliente
from clientes
where cod_cliente between par1 and par2;
end teste;
02/12/2009
Renato Tavares
02/12/2009
Bruno Batista
você quer utiliza está procedure no banco de dados, em outra procedure, ou em um sistema?
02/12/2009
Renato Tavares
02/12/2009
Bruno Batista
no Crystal Report agora você me apertou sem me abraçar.
Mas a chamada dela é normal, o nome dela e passar quatro parâmetros.
Teste(par1,
par2,
codigoCliente,
nomeCliente);
Onde o codigoCliente e nome do cliente tem que aceitar receber valor.
Atenciosamente,
Bruno Moreira Batista.
02/12/2009
Renato Tavares
par2 In String,
cod_empresa out String,
cod_centro Out String)
as begin
declare
Cursor C1(filtro1 In String,
filtro2 In String) is
select CODEMP_R,
CODCC_R
from APONTAMENTO
where CODCC_R between filtro1 and filtro2;
begin
for Ce1 in C1(par1, par2) loop
cod_empresa := Ce1.CODEMP_R;
cod_centro := Ce1.CODCC_R;
end loop;
end;
end; No Banco estou fazendo da seguinte maneira, porém não sei quais os parametros que tenho que colocar nas variáveis de saida. BEGIN
OUTRA ('02210003','02210005');
END; Preciso fazer a seleção do CODCC_R Inicial ao CODCCR_R Final
02/12/2009
Bruno Batista
Ficaria desta forma.
CodCliente VarChar2(50);
NomeCliente VarChar2(50);
BEGIN
Teste ('02210003', // Os primeiros parâmetros serão fixos.
'02210005',
CodCliente, // Os últimos parâmetros preciso buscar um valor, onde será alimentado.
NomeCliente);
END;
Atenciosamente,
Bruno Moreira Batista.
02/12/2009
Renato Tavares
DECLARE CODCC_R VARCHAR2(50); BEGIN
OUTRA ('02210003', '02210005', CODEMP_R, CODCC_R);
END; Está Ocorrendo um erro..!!
ORA-06550: linha 2, coluna 1:
PLS-00103: Encontrado o símbolo "DECLARE" quando um dos seguintes símbolos era esperado:
begin function package pragma procedure subtype type use
form current
cursor
O símbolo "begin" foi substituído por "DECLARE" para continuar.
ORA-06550: linha 7, coluna 4:
PLS-00103: Encontrado o símbolo "end-of-file" quando um dos seguintes símbolos era esperado:
begin case declare end exception exit
02/12/2009
Bruno Batista
post para mim dar uma olhada o que você está tentando criar. Por favor?
Atenciosamente,
Bruno Moreira Batista.
02/12/2009
Renato Tavares
02/12/2009
Bruno Batista
não consegui achar um meio pelo banco de dados, não.
Iria sugerir criar um View, mas acabaria sendo a mesma coisa da tabela.
Em qual linguagem que você está utilizando o Crystal Report, nele não tem como passar um objeto que realiza essa pesquisa, não???
Atenciosamente,
Bruno Moreira Batista.
02/12/2009
Renato Tavares
02/12/2009
Bruno Batista
pode ser feito igual eu iria sugerir, criar uma VIEW onde faria todo o SQL no banco de dados, e depois só faria um SQL simples.
CREATE OR REPLACE VIEW TESTE AS
SELECT *
FROM TABELA1 A1,
TABELA2 A2
WHERE A1.CAMPO = A2.CAMPO
AND ....
E depois só faz
SELECT *
FROM TESTE
Atenciosamente,
Bruno Moreira Batista.
Clique aqui para fazer login e interagir na Comunidade :)