Cezar
 
Infelizmente no Oracle nao temos esta flexibilidade da procedure retornar v�rias linhas.  Para resolver este problema de retornar um cursor eu fiz o seguinte:
 
1 - Criei uma tabela tempor�ria (temp teoricamente pois a mesma fica fixa dentro do oracle) contendo uma coluna com o nome do usu�rio;
 
2 - A procedure recebe como parametro o Usuario e exclui desta temp todos os registros deste usuario caso existam (n�o deletados anteriormente);
 
3 - A procedure faz o processamento normal e no final ao inves de retornar um SELECT como no SQLServer, ele inclui na tabela temporaria os registros deste SELECT.
 
4 - No Centura ao retornar da procedure tenho um SELECT que seleciona todas as linhas da tabela temporaria com a WHERE da coluna do usuario que solicitou a execu��o;
 
5 - Depois que o Centura recebr todas as linhas do SELECT do passo acima, mando excluir os registros da tempoaria deste usu�rio.
 
Esta n�o � a forma mais elegante e/ou eficiente de resolver o problema, por�m, foi a unica saida que encontrei.
 
Espero que isto tb resolva seu problema.
 
Ab�s.
 
JC.Schmidt
 
 
----- Original Message -----
Sent: Monday, May 15, 2000 4:47 PM
Subject: Re: [sqlwin] Procedure Invalida

Oi para todos,
 
    Quero agradecer a resposta de todos, mas nenhuma ainda chegou ao ponto que eu quero. Talvez tenha me expressado mal.
    O problema de usar o dbms_utility.compile_schema � que ele � muito demorado e no banco de produ��o isso pode gerar erros em outras aplica��es que est�o sendo executadas (pois as procedures ficam invalidas por alguns segundos).
    Na situa��o de retornar FALSE n�o resolve o problema, porque a procedure acaba n�o sendo executada. Algu�m utiliza Oracle com Centura? Nunca passaram por esse problema?
    Uma solu��o que criei, muito porca e tempor�ria, � criar um script no Oracle que verifica todas as procedures invalidas e recompila. � melhor do que o DMBS_utility.compile_schema que recompila at� as validas.
    Aproveito para tentar resolver outro problema. Algu�m j� criou algum tipo de procedure que retorne registro a registro do Oracle para o Centura? Fiz isso em SQLServer, mas estava querendo utilizar isso no Oracle.
-----Original Message-----
From: Vivian <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
Date: Sexta-feira, 12 de Maio de 2000 17:50
Subject: Re: [sqlwin] Procedure Invalida

Oi Cezar,
 
� gerado algum erro na sua aplica��o, no momento de execu��o? Pois se voc� conseguir o n�mero do erro, pode dar um Return FALSE e al�m de ele n�o aparecer, a execu��o continua normalmente:

On SAM_SqlError   
 ! Extrai os Argumentos do Erro recebido (SQL)
 Call SqlExtractArgs( wParam, lParam, hSqlErro, nErro, nPos )
 !
 If nErro = 203
  Return FALSE
 
Espero ter ajudado.
 
Boa Sorte!!
 
Vivian
-----Mensagem original-----
De: Cezar Alexandre R. Baldi <[EMAIL PROTECTED]>
Para: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
Data: Quinta-feira, 11 de Maio de 2000 23:15
Assunto: [sqlwin] Procedure Invalida

Oi Galera,
 
    Estou com um problema e n�o sei se tem solu��o. Quando modifico uma tabela ou procedure no Oracle torna varias procedures invalidas (embora n�o tenha erro de compila��o nas procedures). Isso me obriga a recompilar todas as procedures, pois o Centura n�o roda uma procedure invalida.
    Teria como fazer o centura rodar a procedure invalida do Oracle como no SQLPlus? No SQLPlus quando rodo uma procedure invalida ela fica valida automaticamente e roda.
    N�o � simples recompilar todas as procedures com DBMS (pois o banco tem muitas procedures) e recompilar na m�o � pior ainda (mesmo com o script criado por mim).
    Algu�m tem uma dica?
 
Plataforma
Centura 1.5
Oracle 8i (UnixWare)
 
Agrade�o
 
C�zar Alexandre R. Baldi

Responder a