`

在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); 
                        } 
                }


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

相关推荐

    存储过程中怎么动态执行sql语句

    通过以上两个示例可以看出,在Oracle存储过程中实现动态SQL语句的关键在于利用`EXECUTE IMMEDIATE`动态执行SQL语句以及通过创建包的方式来实现更为复杂的动态数据处理逻辑。这两种方法不仅提高了代码的灵活性,还...

    oracle监听执行sql语句

    这条SQL语句通过连接`v$session`和`v$sqlarea`两个视图来获取当前会话中执行的SQL语句及其完整文本。其中`v$session`包含了所有活动会话的信息,而`v$sqlarea`则存储了最近执行过的SQL语句的元数据。通过`a.sql_...

    SQL Server 存储过程及Oracle SQL语句分页

    两种方法各有特点,SQL Server的存储过程封装了复杂的逻辑,使得代码更易于管理和复用,同时避免了多次执行相同查询的开销。而Oracle的分页SQL语句更为简洁,适合在不支持存储过程或者简单场景下使用。但需要注意的...

    oracle存储过程

    将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 例子: BEGIN SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx; ...

    Oracle教案 Oracle 存储过程 游标 SQL语句 PL/SQL

    存储过程是一组预先编译好的 SQL 语句,它们可以作为一个单元执行,减少了网络流量并提高了性能。在 Oracle 中,你可以定义参数,创建自定义的业务逻辑,甚至控制事务处理。存储过程的使用有助于代码重用,降低系统...

    oracle 存储过程批量提交

    在Oracle数据库中,存储过程是一种重要的数据库对象,它可以包含一系列SQL语句和控制流语句,用于实现复杂的业务逻辑处理。存储过程不仅可以提高应用程序性能,还可以确保数据的一致性和安全性。批量提交是存储过程...

    oracle中得到一条SQL语句的执行时间的两种方式

    然而,在上面的例子中,我们没有得到任何结果,这是因为`V$SQL`视图通常只保留最近使用的SQL语句,而且只有当SQL语句被多次执行或执行时间较长时,才会被记录。如果你刚刚执行过该SQL语句并且`V$SQL`视图中还没有...

    SQL语句执行顺序说明

    当SQL语句进入Oracle的库缓存后,为了确保其能够被正确执行,Oracle会经历一系列的检查和准备过程。这一阶段主要涉及以下几个步骤: 1. **语法检查**:检查SQL语句的拼写是否正确以及词序是否合理。这是最基本也是...

    一个存储过程- INSERT_语句生成器.sql

    INSERT_语句生成器.sql 一个存储过程- INSERT_语句生成器.sql 生成表INSERT插入语句SQL,INSERT_语句生成器.sql

    Oracle存储过程基本语法

    Oracle 存储过程是一种可以在 Oracle 数据库中创建和执行的程序单元,它可以完成多种操作,如数据处理、数据报表、数据统计等。下面是 Oracle 存储过程的基本语法。 创建存储过程 CREATE OR REPLACE PROCEDURE ...

    oracle存储过程语法

    存储过程是一种可以重复使用的数据库对象,旨在将多个SQL语句组合成一个单元,以便实现复杂的业务逻辑。 创建存储过程的基本语法 CREATE OR REPLACE PROCEDURE 存储过程名 IS BEGIN NULL; END; 存储过程的组成...

    oracle的一个简单存储过程实例

    Oracle存储过程是数据库管理系统中的一种重要特性,它允许开发者编写包含一系列SQL语句和PL/SQL块的可重用代码段。在这个“Oracle的一个简单存储过程实例”中,我们可以看到如何在Oracle环境中创建、调用和管理存储...

    通过分析SQL语句的执行计划优化SQL.doc

    当一条SQL语句首次执行并解析后,其执行计划会被存储在系统全局区域SGA的共享池中,供后续相同的SQL语句复用,避免重复解析带来的资源消耗。共享SQL语句的关键在于SQL文本的严格匹配,包括空格、换行等细节。通过...

    ORACLE存储过程实现添加、修改、删除、查询

    在Oracle数据库环境中,存储过程是一种预编译的代码块,用于执行特定的数据库操作,如数据的添加、修改、删除和查询。它们提供了一种高效且安全的方式来处理数据,同时还可以减少网络流量并提高应用程序的性能。下面...

    sql_oracle存储过程

    这样,开发人员就可以通过调用存储过程来执行一系列操作,而不是单独编写多条SQL语句,提高了代码的可读性和执行效率。 存储过程的优势在于: 1. 代码复用:一旦定义,可以在多个地方调用,减少代码重复。 2. 安全...

    Oracle存储过程.pdf

    3. 减轻网络流量:如果某一操作涉及的SQL语句被组织成存储过程,那么客户端只需调用该存储过程,网络中传递的只是调用语句,而不是多条SQL语句,从而减少了网络流量,降低了网络负载。 4. 安全机制的实现:系统管理...

    oracle存储过程使用文档

    - **定义**:存储过程(Stored Procedure)是在数据库中预编译的一组SQL语句集合,它可以被当作一个单独的对象来调用,只需要指定存储过程的名字及参数(如果有的话)。在Oracle中,存储过程是一个重要的数据库对象...

    DBHelper数据库操作类(支持OleDb、MySQL、Oracle、SQL、SQLite).zip

    执行多条SQL语句,实现数据库事务。 执行带一个存储过程参数的的SQL语句。 向数据库里插入图像格式的字段 执行一条计算查询结果语句,返回查询结果 执行查询语句,返回MySqlDataReader 执行查询语句,返回DataSet ...

Global site tag (gtag.js) - Google Analytics