不是很理解的再回答一次,两种方式: 1、过程P中对insert T 数据之后,执行commit提交。这样其他session就可以select * from T查看insert的数据了 2、用你2楼的方式,在PLSQL中执行begin -- Call the procedure; P(1); end; / select * from T;
回复9楼:在PL/SQL里面能够正常执行。不知道怎样放在程序里面去。如果实在不行,我只好改写程序了
回复9楼:在PL/SQL里面能够正常执行。不知道怎样放在程序里面去。如果实在不行,我只好改写程序了
回复9楼:在PL/SQL里面能够正常执行。不知道怎样放在程序里面去。如果实在不行,我只好改写程序了
--你的写法本来就有问题 语法的问题 begin -- Call the procedure; P(1); execute immediate 'select * from T'; end;
我在PL/SQL里面先选中执行begin
-- Call the procedure;
P(1);
end;再选中执行
select * from T
是不会报错的,也能查询出正确的数据
declare
r_out sys_refcursor;
begin
p(1);
open r_out for select * from t;
:rs := r_out;
end;
print rs
是啊,因为你是在同一个session中,过程P执行完了,同一个会话中执行select * from T 当然能查询出insert的数据。那我想请问楼主,到底你想要什么啊?视乎不太懂你的需求了。
回复3、5:执行报错ora-00900 invalid Sql statement
回复4:已经把查询的数据Insert到临时表A了
1、过程P中对insert T 数据之后,执行commit提交。这样其他session就可以select * from T查看insert的数据了
2、用你2楼的方式,在PLSQL中执行begin
-- Call the procedure;
P(1);
end;
/
select * from T;
begin
-- Call the procedure;
P(1);
execute immediate 'select * from T';
end;