在同一个事务中,现在一个表里插入了几条数据,接着用游标将新插入的数据读出来,然后进行处理。我记得以前在同一个事务中游标是可以读出刚插入的数据的,即在插入数据未提交之前。但是现在我用java类来调用这个存储过程,游标却查不出数据,有哪位高人知道,请指点一下,现在弄的我很郁闷。
解决方案 »
- Oracle 10g + Windows 2008 + 8G RAM如何优化?
- 数据库服务器经常出现CPU占用率100%的情况,联入数据库的有40多个用户,主要在运行数据量比较大的报表时出现这个现象,怎么优化报表程序都难以改善
- oraclea英文字符集乱码的问题
- excel导入oracle数据库乱序
- 存储过程中的休眠技术??
- 一个关于GTANT的问题,在线等.!!!!!!!!!!!11
- 在ORACLE 8.1.7中如何将一个用户数据库复制成另一个用户数据库.
- oracle 8i监听程序是否与网卡正常配置有关???
- ...where name = 'xx' or name = 'yy' or name = 'zz' 是否可以写成类似于 where name in( 'xx' ,'yy', 'zz')这样的结构?
- 菜鸟入不了"门",请赐教!
- 关于oracle中唯一性处理的问题?
- oracle的过程如何删除文本文件
1.在定义一个记录变量使用TYPE命令和%ROWTYPE后,当游标选择很多列的时候,那么使用记录比为每列声明一个变量要方便得多。当在表上使用%ROWTYPE并将从游标中取出的值放入记录中时,如果要选择表中所有列,那么在SELECT子句中使用*比将所有列名列出来要安全得多。
2、带参数的游标
与存储过程和函数相似,可以将参数传递给游标并在查询中使用。这对于处理在某种条件下打开游标的情况非常有用。
与存储过程不同的是,游标只能接受传递的值,而不能返回值。参数只定义数据类型,没有大小。
另外可以给参数设定一个缺省值,当没有参数值传递给游标时,就使用缺省值。游标中定义的参数只是一个占位符,在别处引用该参数不一定可靠。
OPER@jf> create table test(aaa number);Table created.OPER@jf>
1 create or replace procedure test_p
2 as
3 cursor aaa is select * from test;
4 begin
5 for rec in aaa loop
6 dbms_output.put_line(rec.aaa);
7 end loop;
8* end;
OPER@jf> /Procedure created.OPER@jf> exec test_pPL/SQL procedure successfully completed.OPER@jf> insert into test values(1);1 row created.OPER@jf> exec test_p
1PL/SQL procedure successfully completed.OPER@jf> insert into test values(2);1 row created.OPER@jf> exec test_p
1
2PL/SQL procedure successfully completed.OPER@jf> rollback;Rollback complete.OPER@jf> exec test_pPL/SQL procedure successfully completed.OPER@jf>
Java中用JDBC时, 要么自己手动COMMIT, 要么设置AutoCommit属性