使用Oracle数据库开发中的一个技巧
生活随笔
收集整理的這篇文章主要介紹了
使用Oracle数据库开发中的一个技巧
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
此文章,對于使用.NET Framework也有參考意義。
首先,在JDBC中:
Oracle的JDBC不直接支持一次執行多條語句。一種解決辦法如下:
String?str?=?"BEGIN";
str?+=?"?OPEN???FOR?SELECT?*?FROM?EMP;";
str?+=?"?OPEN???FOR?SELECT?*?FROM?EMP;";
str?+=?"?END;";
CallableStatement?cs?=?m_dbConn.prepareCall(str);
cs.registerOutParameter(1,?oracle.jdbc.OracleTypes.CURSOR);
cs.registerOutParameter(2,?oracle.jdbc.OracleTypes.CURSOR);
cs.execute();
//Get?the?rows?from?each?resultset?returned?by?the?anonymous?block
ResultSet?resultSet?=?(ResultSet)cs.getObject(1);
while?(resultSet.next())
{
????System.out.println("RS1:"+resultSet.getInt(1));
}
resultSet?=?(ResultSet)cs.getObject(2);
while?(resultSet.next())
{
????System.out.println("RS2:"+resultSet.getInt(1));
}
在.NET Framework中,使用OracleClient執行多條SQL估計也會存在同樣的問題。
這篇文章有相應的介紹:
http://www.cnblogs.com/attraction/archive/2004/06/05/13665.aspx
首先,在JDBC中:
Oracle的JDBC不直接支持一次執行多條語句。一種解決辦法如下:
String?str?=?"BEGIN";
str?+=?"?OPEN???FOR?SELECT?*?FROM?EMP;";
str?+=?"?OPEN???FOR?SELECT?*?FROM?EMP;";
str?+=?"?END;";
CallableStatement?cs?=?m_dbConn.prepareCall(str);
cs.registerOutParameter(1,?oracle.jdbc.OracleTypes.CURSOR);
cs.registerOutParameter(2,?oracle.jdbc.OracleTypes.CURSOR);
cs.execute();
//Get?the?rows?from?each?resultset?returned?by?the?anonymous?block
ResultSet?resultSet?=?(ResultSet)cs.getObject(1);
while?(resultSet.next())
{
????System.out.println("RS1:"+resultSet.getInt(1));
}
resultSet?=?(ResultSet)cs.getObject(2);
while?(resultSet.next())
{
????System.out.println("RS2:"+resultSet.getInt(1));
}
在.NET Framework中,使用OracleClient執行多條SQL估計也會存在同樣的問題。
這篇文章有相應的介紹:
http://www.cnblogs.com/attraction/archive/2004/06/05/13665.aspx
轉載于:https://www.cnblogs.com/jobs/archive/2004/07/15/24621.html
總結
以上是生活随笔為你收集整理的使用Oracle数据库开发中的一个技巧的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中小数_比较python中的
- 下一篇: XSL-FO 简介