当前位置: 代码迷 >> Oracle开发 >> 如何解析存储过程返回的结果集的列信息
  详细解决方案

如何解析存储过程返回的结果集的列信息

热度:63   发布时间:2016-04-24 06:28:36.0
怎么解析存储过程返回的结果集的列信息?
有各种存储过程,存储过程执行完后最终会返回一个结果集。
由于存储过程的内容是不定的,所以返回的结果集也是不定。  
程序不会去执行这个存储过程,所以程序是没法获取到这个结果集,所以只能解析存储过程。

请教各位,有什么好解析工具能够解析  存储过程返回结果集的列字段信息呢?
------解决思路----------------------
这个。。。那个。。。没懂
举个栗子呗
存储过程本身不返回结果集。我想知道你的假设的场景
------解决思路----------------------
引用:

我不太明白你这里的解析是什么意思,以下是使用存储过程返回结果集以及在通过匿名程序调用的例子,供你参考:


create or replace procedure sql_test (pi1 number,po out sys_refcursor) is  
begin  
  if pi1=1 then
  open po for 'select 1 id,''Tom'' nm from dual union all select 2 id,''Jack'' from dual';  
  else
  open po for 'select 3 id,''Lucy'' nm from dual union all select 4 id,''Lily'' from dual'; 
  end if;
end ; 
/

set serveroutput on;
    declare  
      cur1 SYS_REFCURSOR;   
     id number; 
     nm varchar2(100);
     begin  
       sql_test(1,cur1);  
     loop  
       fetch cur1 into id,nm;  
       exit when cur1%notfound;  
     dbms_output.put_line(id
------解决思路----------------------
':'
------解决思路----------------------
nm);  
     end loop;  
     close cur1;  
     end;  
/

------解决思路----------------------
难道楼主想自己写个编译器解析sql语句?
------解决思路----------------------
写编译器的节奏,有点困难,有时候结果集是动态拼接成的 sql 。
------解决思路----------------------
不太懂,高深莫测!
  相关解决方案