Utilizando função Oracle com refcursor no reporting services
Abaixo vou demonstrar como utilizar uma função Oracle que retorna um refcursor no reporting services. Vamos montar uma função no banco Oracle que retorne um ref cursor.
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.















