quarta-feira, 18 de janeiro de 2012
Stored-procedure em um programa Progress
Hoje precisei desenvolver e utilizar uma stored-procedure Oracle em um programa Progress. E então resolvi compartilhar isto com vocês...
Primeiramente deve-se criar a stored-procedure no Oracle, através do utilitário SQL*Plus, por exemplo. A seguir apresento o código de uma stored-procedure bem simples:
CREATE PROCEDURE createBanco (bancoId IN NUMBER, bancoNome IN VARCHAR2) AS
BEGIN
INSERT INTO banco (cod_banco, nome_abrev, u##nome_abrev, nome_banco, ag_padrao, convenio, cod_resp, usa_cob_esc, cod_febraban) VALUES(bancoId, bancoNome, UPPER(bancoNome), bancoNome, ' ', 0, ' ', 0, 0);
END;
Após a criação deve-se atualizar o Schema Holder Progress para conter a stored-procedure recém criada, pois para programas Progress ela é vista como uma tabela (sua assinatura é verificada em tempo de compilação). Para fazer esta atualização, deve-se utilizar o utilitário Data Administration.
Os passos para atualização* são os seguintes:
• Executar o Data Administration;
• Selecionar o banco Oracle (não o Schema Holder) que contém a stored-procedure;
• Selecionar o menu DataServer + ORACLE Utilities + Update/Add Table Definitions;
• Informar os dados de login do usuário proprietário da stored-procedure no banco Oracle;
• Informar o nome da stored-procedure no campo object name;
• Schema Holder atualizado.
Depois disso, basta utilizar a stored-procedure nos programas Progress, através do comando RUN STORED-PROCEDURE. A seguir apresento um exemplo:
DEFINE VARIABLE iStoredProc AS INTEGER.
RUN STORED-PROCEDURE mgadm.create-banco
iStoredProc = PROC-HANDLE NO-ERROR
(INPUT 1009, INPUT "1009").
FOR EACH mgadm.proc-text-buffer
WHERE PROC-HANDLE = iStoredProc:
DISPLAY mgadm.proc-text-buffer.proc-text.
END.
CLOSE STORED-PROCEDURE mgadm.create-banco
WHERE PROC-HANDLE = iStoredProc.
Marcadores:
oracle,
programa progress,
programando em progress,
progress,
sql plus,
stored-procedure
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário