Para os iniciantes com desenvolvimento Oracle, este post pode ser salvador. Enfrento um cenário recorrente, testar objetos em uma base de dados que não tenho acesso para visualizá-los. Muitas vezes, meus programas enfrentam erros e por não conseguir ver a base de dados, fico totalmente às cegas.
Durante uma situação como esta, quando eu precisava saber se o problema estava na procedure Oracle ou no meu programa java, desenvolvi o trecho abaixo para ser executado no PL/SQL e validar as colunas devolvidas pela minha procedure. Era a primeira vez que eu tinha que fazer isso com uma procedure que não devolvia dados e sim um cursor.
Vamos ao trecho de código que imprime as colunas retornadas pela procedure:
p_cursor SYS_REFCURSOR;
c_ NUMBER;
col_count_ NUMBER;
desc_tab_ DBMS_SQL.DESC_TAB;begin
— Call the procedure
pr_consulta_compras_cliente(‘Ana’, ‘1245896325’, ’01/08/2013′,’30/08/2013′, p_cursor);
c_ := DBMS_SQL.to_cursor_number(p_cursor);
DBMS_SQL.DESCRIBE_COLUMNS(c_, col_count_, desc_tab_);FOR i_ IN 1..col_count_ LOOP
DBMS_OUTPUT.PUT_LINE(desc_tab_(i_).col_name);
END LOOP;DBMS_SQL.CLOSE_CURSOR(c_);
end;
Deixe um comentário