2010-04-07 124 views
1

由於缺少測試環境,我需要知道下列情況是否可行:我可以使用odp.net和Oracle 8i綁定變量嗎?

我已經爲.Net版本9.2.0.4安裝了Oracle數據提供程序。在生產中,我將不得不從C#應用程序與兩個數據庫(一個Oracle 8i和9i)進行通信。

在這種情況下,Oracle 8i是否支持綁定變量?

我很可能會使用類似於以下代碼:

在此先感謝!

OracleCommand cmd = con.CreateCommand(); 

    OracleTransaction txn = con.BeginTransaction(); 

    try { 
    cmd.CommandText = "update MayJun2009 " + 
         "set balance = balance + :1 " + 
         "where account_id = :2"; 

     OracleParameter pBalance = new OracleParameter(); 
    pBalance.OracleDbType = OracleDbType.Int32; 
    OracleParameter pAccount = new OracleParameter(); 
    pAccount.OracleDbType = OracleDbType.Int32; 

    cmd.Parameters.Add(pBalance); 
    cmd.Parameters.Add(pAccount); 

    pBalance.Value = -500; 
    pAccount.Value = 1; 

    cmd.ExecuteNonQuery(); 

    pBalance.Value = 500; 
    pAccount.Value = 2; 

    cmd.ExecuteNonQuery(); 

    txn.Commit(); 
    } 
    catch (OracleException ex) { 
    txn.Rollback(); 
    } 

回答

1

是的,這個例子應該使用綁定變量,不管它是否是Oracle 8或9i。你可以做一個數據庫跟蹤來確認。對於C#結合的另一個例子是在這裏:

Building an Oracle Data Provider for .NET Application

+0

非常感謝您的驗證!我只是擔心ODP和綁定變量與Oracle 8不兼容。現在我可以繼續使用綁定變量構建我的應用程序,並且有良知。否則,我將不得不等待一個試用環境才能試用這個場景。 – Toby 2010-04-07 16:12:42

+0

該URL不再有效:/ – Vbp 2013-12-05 14:49:55

+0

@vbp修復了網址。 – 2013-12-05 15:14:12

相關問題