| | | 0 | | 1,108 |
讀者 UG 提了一個好問題: 在 ASP.NET /bin 組件載入跟你想的不一樣文章曾提到「"安裝 Oracle Client 時會一併安裝 ODP.NET 到 GAC,故實務上 ASP.NET 會使用裝在 GAC 的組件,並不需要部署 /bin/Oracle.DataAccess.d...
| | | 3 | | 1,976 |
Oracle Client 版本問題像鬼魂般揮之不去,x86/x64、11.2/12.1...,歷經多年糾纏,現在遇到 .NET 要連 Oracle,我一律力推改用 Managed ODP.NET。 但老系統多如牛毛,老鳥都知道「If it works, don't touch it!」是有益身心健...
| | | 0 | | 5,238 |
Oracle 遇難字出錯不算新鮮事,現象不外乎中文字變空白變方格變問號變亂碼,老司機們一眼便知,該怎麼做心裡有數,但這回我遇到超不一樣的變種。(這樣算有吸引詭異茶包的特殊體質嗎?) 碰到一個神奇案例,資料寫入 Oracle NVARCHAR2 時結尾會多出一個 \u0000 (ASCII 0) 字元...
| | | 10 | | 5,475 |
同事報案,有個 ASP.NET 網站「偶爾」會出現提供者與 Oracle 從屬版本不相容錯誤。這是 Unmanaged ODP.NET 的經典茶包, 舉凡 Oracle Client 沒裝好、存取權限跑掉、多版本並存都很容易踩到雷。(由衷建議大家改用 Managed ODP.NET,能有效改善生活品...
| | | 1 | | 1,401 |
今天解決掉一件糾纏近十年的困擾,敲開薰! 過去我分享過不少組件重新導向的技巧,其實十之八九都是 ODP.NET 引起的(為此我還曾研發過暴力解法、暴力解法懶人工具、核武級 ODP.NET 版號暴力破解工具,看我怨念有多深),版號衝突問題大多可藉由在 config 加入 bindingRedirect...
| | | 2 | | 3,596 |
有讀者問到 ODP.NET CommandText 跑多行指令的花式應用,包含在 Script Block DECLARE 宣告變數以及傳回暫存資料表結果。 透過多組 PL/SQL 邏輯組裝資料存進暫存資料表再一次傳回結果的做法,實務上還蠻常見的,但大多情況會寫成 Procedure。如果能讓 .N...
| | | 1 | | 20,259 |
從 Log 或參數拿到成串未分行的 SQL 指令,或是查程式碼遇到複雜的 SQL 指令,會讓它規則化一點方便閱讀,除了手工整理,自動排版工具也是種選擇。 例如以下這段縮排、大小寫無規則的 T-SQL:(我猜有 Coding-Style 潔癖的人會想把作者的頭扭下來) ;WITH SupportCTE...
| | | 2 | | 16,171 |
SQL Server 跟 Oracle 是企業常用的資料庫,但軟體授權費用頗為可觀,針對測試開發情境甚至部分的正式營運環境,倒是可考慮採用它們的免費版本,想合法省錢?這篇文章是簡單整理。 以 SQL Server 2019 為例,共分為 Enterprise、Standard、Web、Develop...
| | | 0 | | 3,825 |
接獲問題通報,某轉擋排程寫入 Oracle NVARCHAR2 欄位時中文難字變成亂碼。查看原始碼,其使用 ODP.NET 讀取來源資料表內容後,轉換成 INSERT 或 UPDATE 指令,以 N'...' 傳值寫入 NVARCHAR2,依據十年前的研究心得,只要搭配 ORA_NCHAR_LITE...
| | | 0 | | 3,898 |
與 Unmanged ODP.NET 纏鬥多年,自以為看遍各種球路,今天再遇上沒見過的變種新球路 - 四縫線變速深卡球,經驗值再加一。 同事將程式部署到測試環境,網站所引用的程式庫參照了 ODP.NET 版,噴出Unable to load DLL 'OraOps12.dll': Access is...
| | | 0 | | 2,359 |
前幾天分享我踩到 Dapper DynamicParameters + ODP.NET NVarchar2 產生中文亂碼的坑,有趣的是問題只發生在使用 DynamicParameters 傳值,若改用匿名型別則沒問題。推測是二者處理參數對映時邏輯有別,因時程壓力先找到 Workaround 避開問題...
| | | 1 | | 2,769 |
自從在 Hacking 樂無窮:修正 Dapper+ODP.NET 無法寫入 Unicode 問題想出 FixOdpNetDbTypeStringMapping 大絕,以為我已經收服 ODP.NET + Dapper Unicode 妖魔,並沒有,昨天又被咬一口。 踩中的是 DynamicParam...
| | | 2 | | 3,598 |
對 ODP.NET 如何跑 Oracle 多行指令,我始終一知半解。何時可以加分號「;」?何時該用 begin end?為何冒出 Encountered the symbol "xxx" when expecting one of the following: ... 錯誤?我...
| | | 0 | | 8,467 |
在 Oracle XE 18c 新建帳號 CREATE USER 出現 "ORA-64096 invalid common user or role name",胡亂爬文設好帳號密碼,卻又 "ORA-01017 invalid username/password;log...
| | | 0 | | 5,037 |
在家想測試 Oracle,手邊沒有活體做實驗心癢難耐,來裝個 XE 版玩玩好了。 Oracle 有所謂的 Express Edition,XE 版,有 3 個使用者 PDB、2 個 CPU Core、2GB 記憶體、12GB 總資料量的限制,但可免費安裝使用,甚至可用在正式環境,只是不提供修補更新及...
| | | 0 | | 2,332 |
先前談過防禦式 SQL 更新 - 用更嚴謹的態度執行正式資料庫更新作業,滿足保留資料更新前後對照、過程與預期不同自動煞車、方便檢閱複核... 等要求。純 SQL 語法簡單明瞭,但施行有些前題:操作環境必須有安裝 GUI 或 Command Line 的 SQL Client 工具、操作人員必須具備 ...