|
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.
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
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
|