在sql Server里,可以通过存储过程返回记录集,如:
CREATE OR REPLACE PROCEDURE Pro_Test
Is
Begin
select * from tab_test;
End;
所以你这个方法在sql Serverr中可以。
但是在Oraclel里要怎么写呢?
CREATE OR REPLACE PROCEDURE Pro_Test
Is
Begin
select * from tab_test;
End;
所以你这个方法在sql Serverr中可以。
但是在Oraclel里要怎么写呢?
解决方案 »
- oracle 小问题 在线等答案
- 求助:管道 pipelined
- 程序运行出错:out of process memroy..... ,我该如何调整参数?
- oracle contains问题,着急,一小时结帖
- 寻找sqlserver存储过程转为 oracle存储过程的工具
- 个位高手谁能帮小妹这个忙啊?(关于Oracle数据库转换为SQL Server 数据库的方法)在线等待!!!
- Oracle中SqlJ的基本用法是什么
- 如何在oracleOEM中实现自动备份?
- 在red hat 8 个人版能安装oracle 8 或9吗
- 如何建立建立一个数据库(我的是在redhat7.2下的oracle8.17数据库),能不能给个例子
- pl-sql中定义表类型的问题
- 这样的查询语句如何写
办法1
输出一个查询字符串
办法2
输出一个查询游标给你个例子
create or replace procedure UP_IRRGuoGuanShuiQing_GetList
( --输出参数
out_Info out packname.rtnproc,
out_ErrorNbr out number
)
is
V_SelectQuery varchar2(1000);--sql 语句
begin
out_ErrorNbr:=0;
V_SelectQuery:='select x.ggsqid,x.clrq,y.jgname,z.ggqdname,n.dlcname,m.xlcmc,x.clsjy,x.lly,x.clsje,x.lle,x.pjll,x.sysl from irrguoguanshuiqing x ';
V_SelectQuery:= V_SelectQuery || 'left outer join irrguanlijigou y on x.gljid = y.jgid left outer join irrguoguanqudao z on x.ggqdid = z.ggqdid ';
V_SelectQuery:= V_SelectQuery || 'left outer join irrxiaolunci m on x.xlcid = m.xlcid left outer join irr_dalunci n on m.dlcid = n.dlcid ';
V_SelectQuery:= V_SelectQuery || ' order by x.clrq desc';
open out_Info for V_SelectQuery ;
exception when others then
out_ErrorNbr:=-1;
end UP_IRRGuoGuanShuiQing_GetList;
as
type page_result is ref cursor;
procedure pkg_query
(
p_tableid in varchar2,
p_page in out page_result
);
end;
/create or replace package body pkg_query
as
procedure pkg_query
(
p_tableid in varchar2,
p_page in out page_result
)
is
v_sql varchar2(4000);
begin
v_sql := 'select * from table';
open p_page for v_sql;
end;
end;
/