我想写这样的一个存储过程
首先建立一个临时表
再再向这个临时表中插入数据
然后修改插入的这个记录中的某一个属性的值
最后用游标打开这个临时表
请问怎么弄?能不能给我写一下。
首先建立一个临时表
再再向这个临时表中插入数据
然后修改插入的这个记录中的某一个属性的值
最后用游标打开这个临时表
请问怎么弄?能不能给我写一下。
解决方案 »
- 数据库中numberic 和number的区别
- OracleCSService 超长时间启动,寻求解决方法。
- 大家帮帮忙,ORCALE重新安装,以前的安装路径删除不掉,怎么办?
- 修改jobs执行间隔
- 非顺序插入表中 ROWNUM用来排序不准确
- Oracle 10g 服务器 服务名 的配置 问题
- WINDOWS下新装oracle,为什么我进不去呀
- 求教,从oracle存储过程或包中返回记录集的方式[jsp+oracle9i]
- 一个sql语句的问题,
- 请问ORACLE脚本中的上级目录如何写?
- 求一SQL语句(好像是叫做交叉表吧)
- *************************觸發器問題************************
is
type t_pat_cur is ref cursor;
cur t_pat_cur;
type t_rowid_rec is table of number index by binary_integer;
rec t_rowid_rec;
i number := 0;
v_sql varchar2(2000) := 'select * from test';
begin
execute immediate 'create table test(id number)';
commit;
while i < 10 loop
execute immediate 'insert into test values('||i||')';
i := i + 1;
end loop;
open cur for v_sql;
close cur;
end;
/
is
type t_pat_cur is ref cursor;
cur t_pat_cur;
type t_rowid_rec is table of number index by binary_integer;
rec t_rowid_rec;
i number := 0;
n_fetch_cnt number := 0;
v_sql varchar2(2000) := 'select id from test';
begin
execute immediate 'create table test(id number,name varchar2(20))';
commit;
while i < 10 loop
execute immediate 'insert into test values('||i||',''AA'')';
i := i + 1;
end loop;
open cur for v_sql;
loop
fetch cur bulk collect into rec limit 10000;
if cur%rowcount > n_fetch_cnt
then
forall i in rec.first..rec.last
execute immediate 'update test set name = ''Tom'' where id = :1'
using rec(i); n_fetch_cnt := n_fetch_cnt + sql%rowcount;
end if;
exit when cur%notfound;
end loop;
close cur;
end;
/execute proc;
is
type t_pat_cur is ref cursor;
cur t_pat_cur;
type t_rowid_rec is table of number index by binary_integer;
rec t_rowid_rec;
i number := 0;
v_sql varchar2(2000) := 'select * from test';
begin
execute immediate 'create table test(id number)';
commit;
while i < 10 loop
execute immediate 'insert into test values('||i||')';
i := i + 1;
end loop;
open cur for v_sql;
close cur;
end;
/