in

Darkthread

黑暗執行緒
All Tags » ORACLE (RSS)

Browse by Tags

  • OracleParameter 型別不符導致 ORA-03111 通訊中斷錯誤

    記錄在 Oracle 遇到的古怪錯誤。 Oracle Server 版本 10.2.0.4 64bit,Client 端用 Managed ODP.NET 12.1.24160719(取自 NuGet),某段程式碼誤傳 Varchar2 OracleParameter 與 DATE 欄位進行比對,預期應出現型別不符錯誤,但得到錯誤訊息為 ORA-03111 在通訊通道上收到中斷訊號( Break received on communication channel ): 該資料表有其他 DATE 欄位,將 WHERE 條件換成其他 DATE 欄位,也會觸發 ORA-03111。 另一個資料表也有類似...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 03-22-2017
  • ODP.NET 發行者原則檔經驗一則

    之前處理過一個 鳥問題 ,使用 ODP.NET 12.1 連線 Oracle Server 10.2.0.4 時無法參與分散式交易,傳回「Unable to enlist in a distributed transaction /無法列於分散式交易中」錯誤。依網路討論 Server 升級到 10.2.0.5 以上可解決,當時決定將資料庫移至另一台 Oracle Server 11.2 成功脫逃,安全下莊。 半年後鳥問題捲土重來,一樣是 ODP.NET 12.1 連 Oracle 10.2.0.4 無法分散式交易,但這回資料庫沒得搬也很難升級,只能乖乖面對。 確認其他機器曾有 ODP.NET 11...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 01-05-2017
  • 核武級ODP.NET版本暴力破解工具

    最近又遇到 ODP.NET 版本問題。(警告:本文涉及邪門歪道雞鳴狗盜之技,正義魔人與衛道人士請自行迴避) 古老 ASP.NET 網站參照 ODP.NET 9207 版,移到 x64 平台必須改用新版 ODP.NET,而 ODP.NET 存在版號從 9.2 10.1 降回 2.102 的鬼問題,新版號比舊版號數字小在 某些情況 下會讓「bindingRedirect 大絕」破功。很無奈,必須調整參照版號才能解決,重新取原始檔編譯太麻煩,於是我找到 ildasm 反組譯成 MSIL 程式碼,修改參數版號再 ilasm 編譯回 DLL 的 奧步 妙招 ,後來更進一步寫了自動化 懶人工具 。 多年後再遇老茶包...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 12-29-2016
  • Oracle故障後續處理經驗一則

    不經一事不長一智,以下經驗價值1.5小時。 接獲回報,部分 ASP.NET 網頁出現資料庫錯誤,錯誤指向某 Oracle 資料庫,使用 Telnet oracel_server_ip 1521 測試無反應,通報系統人員,查出為資料庫主機網路異常,並在隨後修復。 真正的茶包在 Oracle 資料庫主機恢復後才現身,部分使用者通報他們還是無法使用網頁,但我測試是成功的,而有問題的使用者「多試幾次」也會成功。網站為 Web Farm 架構,參雜使用者連上主機可能不同的因素,歷經一番追查彙整,才理頭緒: 網頁連線 Oracle 資料的動作時好時壞,失敗時出現連線錯誤或 Timeout 問題集中在 Web...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 10-04-2016
  • 【茶包射手日記】System.Data.OracleClient更新中文變問號

    同事報案,某支在Windows 2003主機運作良好的轉檔程式,移至開發機執行更新Oracle資料庫時,中文變成問號。 比較原本執行正常的環境為Windows 2003 x86英文版 + Oracle Client 9207(真實世界永遠不乏這種與時代嚴重脫節卻維繫日常營運的中流砥柱啊),開發機則為Windows 7 x64英文版 + Oracle Client 12.1,二者存在不少差異。 寫了一段測試程式嘗試驗證問題,在我的機器(Windows 8.1 x64中文版 + Oracle Client 12.1)更新中文正常,移到同事的機器執行更新中文… 也正常。登楞! 只好回到轉檔程式用Visual...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 09-15-2016
  • 惱人的Managed ODP.NET ConfigSection問題

    自從學會 Managed ODP.NET ,它馬上成為我的奧林匹克指定資料庫元件。不用額外安裝Oracle Client,管它x86還是x64,只要在主機設好TNSNAMES.ORA(我慣用的做法是用%TNS_ADMIN%環境參數提供路徑,一台主機只要設一次,部署到不同主機時不需改config),用NuGet下載安裝好一切搞定,十分方便。比起傳統ODP.NET常常糾結於x84與x64與Oracle Client版號高低,Managed ODP.NET高雅先進,用過之後就回不去了。 不過,我常遇到一個小問題,使用NuGet安裝Managed ODP.NET會自動在web.config加以下區段宣告...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 09-09-2016
  • Hacking樂無窮:修正Dapper+ODP.NET無法寫入Unicode問題

    歷經一段時間摸索歷練,確立「新増修改用EF/ORM,查詢一律用Dapper」的最高指導原則,Dapper的簡潔、效能與彈性無可挑剔,一切看似完美,直到我膝蓋中了一箭… 無意間發現,使用Dapper+ODP.NET無法寫入Unicode字元 跟Oracle Unicode問題奮戰 超過10年 ,以為妖孽已被降伏,用OracleDbType.NVarChar2應該就萬無一失,甚至要在CommandText中用N'…'也 不是問題 ,萬萬沒想到Oracle Unicode問題今天又跑出來咬我屁股。 用以下範例重現問題: using System; using System.Collections...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 08-21-2016
  • Entity Framework筆記:使用Oracle Synonym

    遇到EF使用Oracle Synonym問題,查了資料做了實驗,整理筆記如後。 先說我們在Oracle使用Synonym(別名,有人翻成「同義詞」,我覺得別名順口)的情境:例如人事系統使用"HR"帳號登入Oracle並在自己的HR Schema建立資料表並擁有HR Schema所有資料表的讀寫權限。之後ERP系統要讀存HR Schema下的員工基本資料,當然不能直接用HR帳號密碼連Oracle,而會另開HRQRY之類的帳號,再授與其HR.Employee資料表的讀取權限。這種場景在SQL Server也很常見,只需連線字串改用HRQRY帳號登入,Initial Catalog改指向HR資料庫...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 07-30-2016
  • 使用Oracle資料表保存GUID屬性

    大家都知道我隸屬 GUID PK幫 .NET分舵,最近寫了個小模組,Model理所當然地使用GUID當作Primary Key,由於想同時支援SQL Server跟Oracle,第一次挑戰SQL跟Oracle共用Model。先前的GUID PK經驗都在SQL,SQL有 Uniqueidentifier型別 ,跟C#端的Guid型別能整到天衣無縫;同樣的情場搬到Oracle,就需要動點腦筋解決。 歷經一番摸索,心得如下: 該用什麼型別? Oracle沒有Uniqueidentifier可用,我心中的兩個選項是CHAR(32)或是RAW(16)。 CHAR(32)比較直覺,手工SQL查詢時可以直接寫WHERE...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 07-19-2016
  • 【茶包射手日記】程式當掉時Oracle Transaction未自動Rollback

    同事報案,稍早發生Oracle錯誤導致有一批排程作業失敗,很快找到錯誤,修正後重新執行排程卻出現更新資料庫發生Timeout,而Oracle錯誤後才新増的項目則可順利執行無誤。 由以上線索,推測最可能的原因是「出問題的資料被鎖定了」。檢查程式碼,啟動Transaction但未使用try…catch主動於出錯時Rollback。依據過去經驗,Oracle的Transaction在Client Process意外結束後不會自動Rollback,過程產生的資料鎖定也一直留在特定資料上,如此即能解釋為何出錯的一批資料重新執行會Timeout(苦等不到鎖定釋放)而事後新増的項目卻沒問題。經驗裡SQL Server在Client...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 07-05-2016
第1頁,共10頁 (95個項目) 1 2 3 4 5 下一頁 > ... 最後一頁 »
Powered by Community Server (Non-Commercial Edition), by Telligent Systems