Array
(
)

Converter CURSOR Oracle para Function POSTGRES

Vinicius Redorat
|
MVP
    09 mar 2015

Bom dia, a todos!
Alguém saberia como converter um CURSOR (abaixo funciona no Oracle) para uma FUNCTION no banco de dados POSTGRES 9.1?
DECLARE
/** VALOR INICIAL DA VARIAVEL**/
v_SALDO TBESTOQUETANQUES.INICIAL%TYPE := 4319.74;
BEGIN
FOR TESTE IN (
SELECT CODIGO,DATA,DESCRICAO,INICIAL,COMPRAS,VENDAS,PERIODO FROM TBESTOQUETANQUES ORDER BY PERIODO)
LOOP
/** IRAR ALTERAR O INICIAL DE ACORDO COM O VALOR QUE ESTÁ NA MINHA VARIAVEL**/
UPDATE TBESTOQUETANQUES SET INICIAL=v_SALDO WHERE CODIGO=TESTE.CODIGO;

/** MOSTRAR COMO ESTÁ INDO**/
DBMS_OUTPUT.PUT_LINE(TESTE.CODIGO||' ---- '||TESTE.DATA||' ---- '||
TESTE.DESCRICAO||' ---- '||TESTE.INICIAL||' ---- '||TESTE.COMPRAS||' ---- '||TESTE.VENDAS||' ---- '||TESTE.PERIODO);

/** EFETUO O CALCULO PARA IDENTIFICAR O VALOR DO PROXIMO REGISTRO DO INICIAL**/
SELECT ((INICIAL-VENDAS)+COMPRAS) INTO v_SALDO FROM TBESTOQUETANQUES
WHERE CODIGO=TESTE.CODIGO;

COMMIT;
END LOOP;
END;

Abraço

Jair A.n.
   - 09 mar 2015

declare TESTE como um RECORD

Vinicius Redorat
|
MVP
    09 mar 2015

Boa tarde, Jair!

Primeiramente obrigado pelo retorno.

Referente sua resposta, declarei TESTE como Record, mas, não o cursor não roda no POSTGRES, e sim no Oracle.