1. 程式人生 > >ORACLE儲存過程呼叫儲存過程時commit的問題

ORACLE儲存過程呼叫儲存過程時commit的問題

如程式碼中所寫,在儲存過程proc1中呼叫儲存過程proc2,如果在proc2中commit,則sql1中的DML操作會生效。

proc1
begin 
  begin 
    [sql1...]
    call proc2;----呼叫其他的儲存過程
    exception when others then 
      [sql2...]
      rollback;
  end;
  [sql3..]
  commit;
end;

相關推薦

ORACLE儲存過程呼叫儲存過程commit的問題

如程式碼中所寫,在儲存過程proc1中呼叫儲存過程proc2,如果在proc2中commit,則sql1中的DML操作會生效。 proc1 begin begin [sql1...] call proc2;----呼叫其他的儲存過程 exc

Oracle通過Job呼叫儲存過程

 這是本人第一次處理Oracle的儲存過程以及計劃任務(job)的事情;期間遇到了很多問題在此將這次試用job呼叫自己的編寫的儲存過程的過程中遇到的問題做一總結; 任務:實時採集系統會每5分鐘給中心繫統傳送一個流量資料,但是沒有給出累計流量資料; 1、編寫一個儲存過程W

oracle 函式中呼叫儲存過程

  專案中開發了一個儲存過程來給報表提供資料來源,而程式業務邏輯中需要有一個對該資料來源進行判斷的功能,開始是使用拼接sql的方式在儲存過程中對應sql的外面包裝一層來進行處理,但是覺得這種方式拼接的sql太長,而且以後業務邏輯改變要同時修改儲存過程和程式碼,容易發生遺漏,

ORACLE定時任務呼叫儲存過程動態為表新增分割槽

1、建立需要自動分割槽的表 CREATE TABLE TEST(M DATA) PARTITION BY RANGE(M) ( PARTITION TEST_PAR_99991212 VALUES LESS THAN(TO_DATE('12-12-9999','DD-MM-

Oracle建立和呼叫儲存過程,函式,檢視

【1】Oracle建立和呼叫儲存過程1:寫一個簡單的例子刪除三級級聯 1)create or replace procedure ww_procedure_servicecheck (V_ID IN NUMBER)-- 定義輸入變數 IS begin    DELETE

oracle學習之道:如何在ORACLE中非同步呼叫儲存過程的方法

 在ORACLE資料庫實際應用過程中,經常把業務處理邏輯的放在儲存過程,客戶端通過ADO進行呼叫。有些業務邏輯處理量大並且複雜,使客戶端呼叫儲存過程後,長時間沒有反應,也不知儲存過程執行狀態,本文講述如何在ORACLE通過任務和管道的應用,非同步呼叫儲存過程的方法。  

儲存過程呼叫儲存過程

儲存過程引用儲存過程在儲存過程B中,呼叫儲存過程A。當儲存過程A中RETURN時,跳出A過程。但是在B過程引用處繼續往下執行。CREATE OR REPLACE PROCEDURE A AS BEG

儲存過程+呼叫儲存過程+無/帶參的儲存過程+in引數+out引數+int out引數+為引數設定預設值

儲存過程 1儲存過程是一組為了完成特定功能的SQL語句集 2儲存過程編譯後儲存在資料庫中 3執行儲存過程比執行儲存過程封裝的SQl語句集更有效率 4不能指定declare關鍵字 5: OUT 和 IN OUT 的形參不能有預設表示式,只有in引數可以設

Sql Server 儲存過程呼叫儲存過程接收輸出引數,返回值

CREATE PROCEDURE [dbo].[GetCustomers]   (@rowcount INT OUTPUT)   AS        SELECT [CustomerID]         ,[CompanyName]         ,[ContactName]         ,[

SQL儲存過程呼叫標量值函式,儲存過程呼叫儲存過程

一、存 儲過程呼叫標量值函式 先建一個標量值函式,如 CREATE FUNCTION [dbo].[F_Num] ( @a nvarchar(50) ) RETURNS nvarchar(50) AS BEGIN declare @m nvarchar(50) selec

檔案開啟的過程——呼叫fd=open()作業系統所做的工作

fd=fopen()是一個系統呼叫,用於根據檔名開啟一個檔案,返回該檔案的檔案描述符,檔案開啟後進程便可以根據檔案描述符fd進行其他操作,比如讀,寫,關閉等操作。 各個作業系統開啟檔案的過程是類似的,本文以Unix為例,介紹開啟一個檔案作業系統所做的工作,正式介紹這個過程之

在PL/SQL Developer和oracle中如何新建儲存過程呼叫儲存過程

1、新建程式視窗,選擇Procedure 2、寫入procedure以後,要執行程式進行編譯 3、編譯成功以後,有三種方法可以執行procedure 第一種是在命令視窗執行exec procedure name SQL> exec procedure_name();

SQL2008 連結Oracle 呼叫儲存過程

最近接觸了兩個專案都用到了SQL與Oracle資料互通,其中一個數據同步還要呼叫ORACLE中的儲存過程來執行相應的操作。 1. SQL連結ORACLE 都是視覺化的操作 如下圖: 紅色框選的是oracle的資料驅動,如果沒有這個驅動 那

在PL/SQL中呼叫儲存過程--oracle

在oracle10中寫好了儲存過程,程式碼如下: CREATE OR REPLACE Procedure Proc_Insert ( sName in varchar2, sAge in int,

oracle呼叫儲存過程

儲存過程的呼叫 增加,修改,刪除的儲存過程呼叫 帶輸入引數的儲存過程呼叫 帶輸出引數的儲存過程的呼叫:此處以登入成功還是失敗為例.返回0 或者1 增加,修改,刪除的儲存過程呼叫

oracle工具pl/sql呼叫儲存過程的格式

pl/sql呼叫儲存過程的格式declarestart_date date:=sysdate-1; --  開始時間end_date   date:=sysdate;   --  結束時間 a2   varchar2(20):='12' --   a7   NUMBER:=

使用c#呼叫oracle儲存過程獲取儲存過程引數資訊

本文介紹如何獲取儲存過程的引數資訊,並介紹如何在c#程式碼中使用ODP.NET呼叫oracle儲存過程返回結果集:1:建立包:SQL> create or replace package FORP_PROC_INFO is  2    3    -- Author  :

Oracle 呼叫儲存過程

1. 資料庫 Package 包頭宣告create or replace package ACHG_ORG is PROCEDURE sp_rca_cons(in_no varchar2, in_flag varchar2); end ACHG_ORG;2. 定義儲存過程

oracle PLSQL建立和呼叫儲存過程

我是在PLSQL的command window裡使用的命令建表 drop table students; create table students(ID int,userName varchar(100),userpass varchar(100),userAge int)

hibernate4連線Oracle帶out引數的儲存過程呼叫

程式碼如下: ProcedureCall pc=getCurrentSession().createStoredProcedureCall("P_USER_PUBLISH");     pc.registerParameter("in_username", String.