ASP.NET 應用程式連接 Oracle 資料庫,需完成三層基礎建設:伺服器端 Oracle Client 安裝、Net 服務名稱配置、資料庫使用者權限授予。本文提供圖文並茂的逐步操作指南,適用 Oracle 9i/10g/11g/12c/19c/21c 環境。
MYORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
CREATE USER myapp_user IDENTIFIED BY strong_password
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON users;
GRANT CONNECT, RESOURCE TO myapp_user;
GRANT CREATE VIEW, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TRIGGER TO myapp_user;
-- OBA 角色 (若存在)
GRANT OBA TO myapp_user;
-- 或授予特定物件權限
GRANT SELECT, INSERT, UPDATE, DELETE ON schema.table TO myapp_user;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
<connectionStrings>
<add name="OracleConn"
connectionString="Data Source=MYORCL;User Id=myapp_user;Password=strong_password;Pooling=true;Min Pool Size=5;Max Pool Size=100;"
providerName="System.Data.OracleClient" />
<!-- 或使用 Oracle.ManagedDataAccess (ODP.NET Managed) -->
<add name="OracleConnManaged"
connectionString="Data Source=MYORCL;User Id=myapp_user;Password=strong_password;"
providerName="Oracle.ManagedDataAccess.Client" />
</connectionStrings>
| 舊版 (System.Data.OracleClient - 已棄用) | 新版 (Oracle.ManagedDataAccess.Client - 建議) |
|---|---|
| OracleConnection | OracleConnection |
| OracleCommand | OracleCommand |
| OracleDataReader | OracleDataReader |
| OracleDataAdapter | OracleDataAdapter |
| OracleParameter | OracleParameter |
| OracleTransaction | OracleTransaction |
| OracleType 枚舉 | OracleDbType 枚舉 |
| 錯誤現象 | 可能原因 | 解決方案 |
|---|---|---|
| ORA-12154: TNS:could not resolve the connect identifier | tnsnames.ora 路徑錯誤/服務名拼寫錯誤 | 檢查 TNS_ADMIN 環境變數、tnsping 測試 |
| ORA-12541: TNS:no listener | Listener 未啟動 / IP/Port 錯誤 / 防火牆 | 服務端 `lsnrctl status`、開放 1521 port |
| ORA-01017: invalid username/password | 帳密錯誤 / 大小寫 / 密碼過期 | 確認帳號狀態、解鎖、重設密碼 |
| System.Data.OracleClient 不支援 .NET Core | 舊版組件僅支援 .NET Framework | 遷移至 Oracle.ManagedDataAccess.Core |
| 中文亂碼 | NLS_LANG 環境變數未設定 | 設定 `NLS_LANG=TRADITIONAL CHINESE_TAIWAN.ZHT16MSWIN950` |
Oracle 資料庫以穩定、功能強大著稱,但連線配置向來被視為「門檻」。掌握 Client 安裝、TNS 配置、權限模型、連線字串參數、驅動程式選型這五大關鍵,即可在 ASP.NET 專案中輕鬆駕馭 Oracle,享受企業級資料庫的威力。