本文討論了如何使用 ADO.NET 訪問 Oracle 存儲過程(稱為 SQL 編程塊)和函數(返回單個值的編程塊)。
您可以使用以下托管數據提供程序連接到 Oracle 數據庫:Microsoft .NET Oracle 提供程序、OLE DB .NET 提供程序、ODBC .NET 數據提供程序以及 Oracle 的 ODP.NET 提供程序。本文使用用於 Oracle 的 Microsoft?.NET 框架數據提供程序。使用 Oracle ODP.NET 數據提供程序或用於 OLE DB 的 Microsoft .NET 框架數據提供程序時可使用不同的功能。
Oracle .NET 數據提供程序隨 .NET 框架 1.1 一起提供。如果您使用的是 .NET 框架 1.0,您將需要下載 .NET Managed Provider for Oracle。無論是哪個版本,數據提供程序類都位於 System.Data.OracleClient 命名空間中。
概述
PL/SQL 是 SQL 的 Oracle 實現。它與 Microsoft?SQL Server? 所使用的 T-SQL 類似,但也有一些不同之處,本文稍後對此進行了詳細討論。與 T-SQL 一樣,PL/SQL 擴展了標准 SQL。PL/SQL 用於定義命名編程塊,如存儲過程、函數和觸發器。
類
可使用 System.Data.OracleClient 命名空間中類的子集來執行 Oracle 存儲過程和函數。下表對這些類進行了說明:
類 說明
OracleCommand
針對 Oracle 數據庫執行的存儲過程的 SQL 語句。
OracleConnection
打開的數據庫連接。
OracleParameter
OracleCommand 的參數,也可能是它到 DataColumn 的映射。
OracleParameterCollection
OracleParameter 對象的集合。
OracleType
Oracle 數據類型和結構的枚舉。
執行存儲過程
執行 Oracle 存儲過程與執行 SQL Server 存儲過程類似。下面的步驟說明了如何執行 Oracle 存儲過程和檢索它返回的結果。
1.
在 HR 架構中創建一個名為 COUNT_JOB_HISTORY 的存儲過程,以計算 JOB_HISTORY 表中的記錄數。
CREATE OR new PROCEDURE COUNT_JOB_HISTORY
(
reccount OUT NUMBER
)
IS
BEGIN
SELECT COUNT(*) INTO reccount
FROM JOB_HISTORY;
END COUNT_JOB_HISTORY;
HR 架構是默認 Oracle 安裝中包含的一個示例。