如何从存储过程中返回多行?

时间:2015-08-12 07:36:56

标签: java sql oracle oracle10g

 "select tableshow from alltable where branch =      
 '"+session.getAttribute("Branch")+"' and sem = 
 '"+session.getAttribute("Sem")+"'";

通过这个查询我获取表的名称,例如让表名为'fifthsem',它存储在exe变量中

现在我需要对此变量exe应用查询作为表名。 我需要从该表的过程中获取整个数据并在jsp页面中显示。

使用oracle数据库

3 个答案:

答案 0 :(得分:2)

  

如何从存储过程返回多行?

您可以使用REF CURSORs将多行从存储过程返回到客户端应用程序。

  

使用REF CURSOR是将查询结果从Oracle数据库返回到客户端应用程序的最强大,最灵活,可扩展的方法之一。

     

REF CURSOR是PL / SQL数据类型,其值是数据库上查询工作区的内存地址。本质上,REF CURSOR是数据库上结果集的指针或句柄。 REF CURSOR通过OracleRefCursor ODP.NET类表示。

查看此示例:Retrieving an Oracle cursor in Java

答案 1 :(得分:0)

您可以将其分配给变量并使用动态sql获取数据

请参阅此Dynamic SQL LOOP

答案 2 :(得分:0)

您可以使用Oracle Pipelined表函数。

有关如何在oracle中创建Pipelined表函数的详细信息,请参阅this link