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;
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:
Arraste o objeto table no relatório e vincule-o ao dataset criado:
Para vincular a table ao dataset basta entrar nas propriedades e colocar no nome do dataset no item Datasetname, conforme abaixo:
Para executar o relatório, basta clicar na aba Preview, que pedirá para informar o valor do parâmetro, conforme a figura abaixo:
Ao colocar o valor 5, por exemplo, e clicar em View Report, abaixo segue o resultado do relatório:
***
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.











