Banco de Dados

7 fev, 2013

Utilizando função Oracle com refcursor no reporting services

Publicidade

Abaixo vou demonstrar como utilizar uma função Oracle que retorna um refcursor no reporting services.

  • Oracle database versão 10g
  • Reporting services versão 2008

Vamos montar uma função no banco Oracle que retorne um ref cursor. Abaixo segue um exemplo simples de retornar uma lista de empregados e o parâmetro informado será a quantidade de linhas:

create or replace function fteste(p_qtde_registro in number) return sys_refcursor is
rc sys_refcursor;
begin
open rc for select id,nome from emp where rownum <= p_qtde_registro;
return rc;
end;

Compilado a função Fteste no banco de dados, conforme o item anterior, dentro do reporting services podemos criar um dataset do tipo stored procedure. Coloque o nome da função criada, que no caso é Fteste;

image002

image004

Como a função Fteste tem parâmetro, automaticamente o reporting services criará esse mesmo parâmetro com o mesmo nome no relatório e os campos mencionados também virão, que no caso é id e nome:

image006

Arraste o objeto table no relatório e vincule-o ao dataset criado:

image008

Para vincular a table ao dataset basta entrar nas propriedades e colocar no nome do dataset no item Datasetname, conforme abaixo:

image010

Para executar o relatório, basta clicar na aba Preview, que pedirá para informar o valor do parâmetro, conforme a figura abaixo:

image012

Ao colocar o valor 5, por exemplo, e clicar em View Report, abaixo segue o resultado do relatório:

image014

***

Artigo publicado por: Marcius Yukio Nishida – formado em ciências da computação em 2000, é analista de sistemas na Scania Latin America Ltda, focado em sistemas de produção no Brasil e na Europa. Trabalha na área de TI desde 1995 e, atualmente, está cursando o MBA em Business Intelligence na IBTA.