游标只能实现查询,那有你这种过程的写法。declare
type t_sor is ref cursor;
v_sor t_sor;
str varchar2(50);
a number;=1;
begin
if a=1 then
str:='select * form tablex';
open v_sor for str;
else
str:='select * form tabley';
open v_sor for str;
end if
end;
type t_sor is ref cursor;
v_sor t_sor;
str varchar2(50);
a number;=1;
begin
if a=1 then
str:='select * form tablex';
open v_sor for str;
else
str:='select * form tabley';
open v_sor for str;
end if
end;
解决方案 »
- 求一Oracle包体,包含存储过程,自定义函数(function),自定义类型(table),用函数返回自定义类型(相当于返回一张表)。
- 请教一条sql语句
- oracle游标求解
- oracle每个表的每次插入、删除、更新都要求记入日志信息,有好的解决方案吗?
- Oracle10g 如何安装Oracle11g的补丁
- 存储过程自动消失的问题?
- 关于ORACLE的几个基础问题,50分求助
- JOB 是干啥用的,不明白,请解释一下!
- 5555,oracle9i启动不起来了呀,是TNS服务的事,请高人指点,送百分,急
- 有关创建ORACLE数据链路问题
- 关于表空间的一些问题
- 高手进来看看,imp导入数据时出现的字符集问题???
可以通过返回ref cursor类型的function来实现(但考虑的效率,如
不是非要通用的没必要)如结构一致
cursor cdnyqry(a number) is
select * from tablex where a=1
union
select * from tabley where a!=1;
你的想法我也有,就是通过union实现互斥定义,但效率有点问题,不知是否有更好的方法。