在oracle中不用存储过程也可以一次执行多条SQL语句

来源:http://www.wyjava.com/html/2012/database_oracle_0206/29.html
假如我做完一个操作后,我要将某表的某条数据移到备份表中去,然后将这条数据从本表中删除。对于这种操作,那么一起成功,那么一起失败。一...
假如我做完一个操作后,我要将某表的某条数据移到备份表中去,然后将这条数据从本表中删除。对于这种操作,那么一起成功,那么一起失败。
一般对于这种情况我们会用存储过程实现。
存储过程确实可以。
但是在oracle中还有另外一种方法也可以实现。
在oracle中可以将多条SQL写在一起,以分号结束。
语法

begin
SQL语句1;
SQL语句2;
end;


实例
在JAVA程序中的实现

/**
* 备份彩信发送数据
*/
public void reservedMmsSubmitMmsc(MmsSubmitMmsc mmssubmitmmsc) {
// 备份彩发送数据语句
String strReserved = "begin insert into smscom.MMS_SUBMIT_MMSC_BAK values(?,?,?,?,?,?,?,?,?,?,?);delete smscom.MMS_SUBMIT_MMSC where id=?; end;";
Connection connection = null;
PreparedStatement ps = null;
try {
connection = ConnectionPool.getConnection();
ps = connection.prepareStatement(strReserved);
ps.setInt(1, mmssubmitmmsc.getId());
ps.setString(2, mmssubmitmmsc.getMsgId());
ps.setInt(3, mmssubmitmmsc.getChargedParty());
ps.setString(4, mmssubmitmmsc.getMobile());
ps.setString(5, mmssubmitmmsc.getFeeMobile());
ps.setString(6, mmssubmitmmsc.getServiceCode());
ps.setString(7, mmssubmitmmsc.getSenderAddresss());
ps.setString(8, mmssubmitmmsc.getLinkId());
ps.setDate(9, mmssubmitmmsc.getMmsMtTime());
ps.setString(10, mmssubmitmmsc.getDeliveryReport());
ps.setInt(11, mmssubmitmmsc.getMmsmmscmainattach().getId());
ps.setInt(12, mmssubmitmmsc.getId());
ps.execute();
} catch (SQLException sqle) {
Debug
.outInfo("[MMSCDataAccess],reservedMmsSubmitMmsc(),备份彩信发送信息失败 "
+ sqle);
} finally {
PublicFunction.closeConnection(connection, ps);
}
}


这个方法就实现了以上功能。一个操作实现了多个功能。 在其他语言操作方式差不多,只是连接语句等不能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值