.net之oraclecommand訪問oracle
本文討論瞭如何使用 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 中包含的一個示例。
2.
將 System.Data.OracleClient.dll(用於 Oracle 的 Microsoft .NET 框架資料提供程式)的引用新增到專案中。
3.
使用 using 指令匯入 OracleClient 類中的型別。
using System.Data.OracleClient;
4.
建立一個 OracleConnection 物件。
OracleConnection conn = new OracleConnection("Data Source=oracledb;
User Id=UserID;Password=Password;");
用您的值替換 Oracle 資料庫的名稱、使用者名稱和密碼。
5.
創
建一個 OracleCommand 物件。將其 Connection 屬性設定為第 4 步中建立的連線。將其 CommandText
設定為儲存過程的名稱,並將其 CommandText 屬性設定為 CommandType.StoredProcedure。當您呼叫第 8
步中介紹的一個 Execute() 方法時,該命令物件將執行指定的儲存過程。
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "COUNT_JOB_HISTORY";
cmd.CommandType = CommandType.StoredProcedure;
如果您的儲存過程名稱含有特殊字元,您就必須使用轉義序列。您可以透過重置 CommandText 屬性來重用現有的 OracleCommand 物件。
6.
建立輸入、輸出和返回值的 OracleParameter 物件,並將其新增到 OracleCommand 物件的引數集合中。
cmd.Parameters.Add("reccount", OracleType.Number).Direction =
ParameterDirection.Output;
該行是以下兩行程式碼的簡寫形式:
cmd.Parameters.Add("reccount", OracleType.Number);
cmd.Parameters["reccount"].Direction = ParameterDirection.Output;
7.
如果您要檢索結果集,請建立 DataSet、DataTable 或 DataReader。在本示例中,我們只是獲取第 6 步中建立的輸出引數中的計數。
8.
使用 OracleCommand 物件的一個 Execute 方法開啟連線並執行儲存過程,如下所示:
ExecuteReader
透過執行能夠返回結果集的儲存過程生成 OracleDataReader。
ExecuteNonQuery
執行不返回結果集的查詢或過程,返回受影響的行數。
ExecuteOracleNonQuery
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-703292/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【oracle】sqlnet.ora 訪問控制策略OracleSQL
- Oracle配置sqlnet.ora限制ip訪問[Oracle基礎]OracleSQL
- Kubernetes API訪問鑑權之Basic模式API模式
- kubernetes使用http rest api訪問叢集之使用postman工具訪問 apiserverHTTPRESTAPIPostmanServer
- kubernetes之使用http rest api訪問叢集HTTPRESTAPI
- kubernetes實踐之十六:RBAC 角色訪問控制
- LightDB/postgresql內建特性之訪問oracle之oracle_fdw介紹SQLOracle
- 使用Oracle Net實現限制特定IP訪問資料庫Oracle資料庫
- Oracle 訪問路徑Oracle
- Oracle外網訪問Oracle
- mono 訪問 oracle、mysqlMonoOracleMySql
- Oracle 表訪問方式Oracle
- Oracle 索引訪問方式Oracle索引
- oracle表訪問方式Oracle
- oracle 限定ip訪問Oracle
- ORACLE 11g sqlnet.ora 設定限制IP 訪問OracleSQL
- 用.NET新提供的managedprovider來訪問Oracle資料(轉)IDEOracle
- DotNetNuke 資料訪問層
- php之像訪問陣列一樣訪問物件PHP陣列物件
- Oracle EBS DMZ區訪問問題Oracle
- 用Python訪問OraclePythonOracle
- Oracle訪問表的方式Oracle
- HTTP之訪問控制「CORS」HTTPCORS
- .Net Core實戰之基於角色的訪問控制的設計
- kubernetes實戰篇之通過api-server訪問dashboardAPIServer
- kubernetes實戰篇之Dashboard的訪問許可權限制訪問許可權
- NetScreen裡設定控制訪問
- [ASP.NET]關於DOT NET的IIS配置LocalHost訪問和127.0.0.1訪問的區別ASP.NETlocalhost127.0.0.1
- Oracle指令碼(Oracle Scripts) – 檢視索引訪問次數及索引訪問型別Oracle指令碼索引型別
- oracle透明閘道器之異構資料庫的訪問Oracle資料庫
- 從Oracle訪問SQL Server(GATEWAYS)OracleSQLServerGateway
- ORACLE 訪問MYSQL 配置筆記OracleMySql筆記
- Oracle 單表訪問路徑Oracle
- Oracle資料庫訪問控制Oracle資料庫
- 通過Oracle Gateways 訪問SybaseOracleGateway
- 限定client端IP訪問oracle!clientOracle
- 限定client段ip訪問oracle!clientOracle
- 【Kubernetes學習筆記】-服務訪問之 IP & Port & Endpoint 辨析筆記