Oracle临时表C#应用

//事先生成临时表 create global temporary table temp_20061030 (id int,name varchar2(256)) on commit delete rows;
OracleDBOperation dbo = null;//OracleDBOperation为对Oracle操作封装的自定义的类。各位可以用Oracle自带的操作类和方法。此处只是说明处理方法。
OracleTransaction trans = null;//关键第一步
try
{
 dbo = new OracleDBOperation();//实例化并连接数据库

 trans=dbo.Connection.BeginTransaction();//关键第二步
/*--正常利用临时表的业务处理开始--*/
 string sql="insert into temp_20061030 (id,name) select t.id,t.name from table1 t where t.id<1000";
 dbo.ExecuteStatement(sql);
 sql="select max(id) id,count(*) cnt from temp_20061030";
 DataTable dt = dbo.GetTable(sql);
 if(dt.Rows.Count>0)
 {
  string id=dt.Rows[0]["id"].ToString();
  string cnt=dt.Rows[0]["cnt"].ToString();
  MessageBox.Show(id+"/"+cnt);
 }
 else{
  throw new Exception("没有数据");
 }
/*--正常利用临时表的业务处理结束--*/

 trans.Commit();//关键第三步
}
catch(Exception ex)
{
 /*--释放也很重要--*/
 if(trans!=null){
  trans.Rollback();
 }
 MessageBox.Show(ex.Message);
}
finally{
 /*--释放也很重要--*/
 if(trans!=null){
  trans.Dispose();
  trans=null;
 }
 if(dbo!=null){
  dbo.Close();
  dbo.Dispose();
  dbo=null;
 }
}
临时表在事务内有效时,事务Commit或Rollback都会清空临时表。

转载于:https://www.cnblogs.com/hmmcsdd/archive/2006/10/30/OracleTempTableUsedInDotNet.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值