Browse by Tags

【茶包射手日記】詭異的Oracle Client 32/64版本錯誤
同事報案,某台測試機器原本只裝Oracle Client 32位元版本,因該主機上的SQL Server x64需建Linked Server連Oracle,故加裝了Oracle Client 64位元版本[ 參考 ]。不料,同主機用System.Data.OracleClient讀資料的網頁,在安裝Oracle Client 64位元版後,忽然冒出Oracle 32/64版本不符的經典錯誤:An attempt was made to load a program with an incorrect...
Posted 21 May 2016 07:24 AMJeffrey | with no comments 3,598
Filed under: ,
【茶包射手日記】Oracle Client版本與分散式交易
接獲報案,同事欲將測試網站移至新主機,遇到Oracle無法進行分散式交易的情況,得到以下錯誤訊息:     Oracle.DataAccess.Client.OracleException     Unable to enlist in a distributed transaction /無法列於分散式交易中 該網站尚有其他SQL分散式交易正常,單獨連線Oracle不參與分散式交易也正常,主機Oracle Client版本為ODAC121024...
Posted 05 May 2016 09:26 PMJeffrey | 2 comment(s) 2,617
Filed under:
將複合字串拆成多欄位-以ORACLE及SQL為例
先說說我的需求。某資料表使用複合欄位當Primary Key,例如:由OrgId、DeptId、UserId三欄組成唯一鍵值。當要查詢特定資料,理論上應寫成WHERE OrgId='…' AND DeptId = '…' AND UserId = '…'。為求簡便,在.NET程式端以及某些資料表我發明了一種複合代碼字串"OrgId-DeptId-UserId",只用一個參數或一個欄位就搞定關聯,省時又省力。不過,每個做法總有黑暗面...
Posted 09 March 2016 06:32 AMJeffrey | 5 comment(s) 11,664
Filed under: ,
【茶包射手日記】ORA-12514鬼打牆記
接獲報案,本機測試無誤的程式部署到測試台,Managed ODP.NET開啟連線時冒出ORA-12514錯誤,依照上回處理 經驗 ,直覺又是IIS/machine.config相關的問題。 ORA-12514: TNS: 監聽器目前不知道連線描述區中要求的服務. ORA-12514: TNS:listener does not currently know of service requested in connect descriptor 同事有提到錯誤代碼與文章所寫不同,12514 vs 12154...
Posted 10 June 2015 11:10 PMJeffrey | 2 comment(s) 8,527
Filed under:
【茶包射手日記】LINQ Contains查詢引發ORA-01425錯誤
網友報案:使用 ODAC112030 與 Visual Studio 建立 Entity Framework Model ,在 C# 使用 LINQ 語法.Where(o => o.ColName.Contains(someVar)),被轉換成以下SQL語法: WHERE ("Extend1"."FOO" LIKE :p__linq__0 ESCAPE '\') 送到Oracle 9i執行(是的,侏儸紀時代的Oracle 9),冒出ORA...
Posted 09 May 2015 07:55 AMJeffrey | with no comments 3,321
Filed under: ,
【茶包射手日記】Managed ODP.NET在ASP.NET發生ORA-12154錯誤
故事要從前幾天學會 讓ODP.NET查詢加速10倍的密技 說起,原始問題在於 Dapper 查詢效能不佳,正想把新發現套用在Dapper上… 登楞!Dapper透過IDbConnection擴充方法提供功能,根本沒機會對OracleCommand或OracleDataReader動手腳啊!(抱頭) 打開Dapper原始碼,想研究有沒有地方傳FetchSize參數(還在裡面看到華麗的Emit特技,嘆為觀止),由於FetchSize非通用ADO.NET屬性,無功而返。 另一條路從環境設定著手,倒有點收獲...
Posted 01 May 2015 08:25 AMJeffrey | with no comments 8,388
Filed under: ,
讓ODP.NET查詢快10倍的小密技-FetchSize
同事報案,某專案使用ODP.NET+ Dapper 查詢一萬筆資料要耗時三分鐘,而同樣查詢丟到PL/SQL Developer跑只要15秒。為了洗刷.NET效能不佳的罪名,立刻出發調查。 我實做一個簡單測試重現問題,在我的i7機器執行,查詢取回10,691筆耗時34.794秒;用PL/SQL Developer查詢測得11.453秒,足足慢了3倍。 using Oracle.DataAccess.Client; using System; using System.Collections.Generic;...
Posted 28 April 2015 09:05 PMJeffrey | 1 comment(s) 8,705
Filed under:
Managed ODP.NET簡介
被 Oracle Client版本問題 困擾過很多次,之前由網友回饋得知Managed ODP.NET,一直沒深入研究過,直到今天完成評估,新武器一枚入手。 過去我們常用的Oracle.DataAccess(ODP.NET),骨子裡其實是走Unmanaged,得靠oci.dll那堆程式庫才能連上資料庫,因此安裝時必須一併安裝Oracle Client,而Unmanaged Oracle Client有32位元跟64位元之分,許多開發者還因此學會IIS Application Pool啟用32位元模式的技巧呢...
Posted 31 March 2015 09:46 PMJeffrey | 9 comment(s) 22,541
Filed under:
【茶包射手日記】ODP.NET如何找對Oracle Client檔案?
同事報案,某網站部署至新主機出現錯誤: [OracleException (0x80004005): 提供者與 Oracle 從屬端版本不相容]    Oracle.DataAccess.Client.OracleInit.Initialize() +517    Oracle.DataAccess.Client.OracleParameter..cctor() +29 [TypeInitializationException: The type initializer...
Posted 17 March 2015 09:20 PMJeffrey | with no comments 7,417
Filed under: ,
【茶包射手日記】OracleDataReader數字型別對應陷阱(ODP.NET)
接獲報案,由Oracle資料庫讀取NUMBER(14,6)欄位,原值為1.997748,JSON轉換送至Client端變成1.9977479999999999! 判斷這是典型浮點數問題(順便複習: 算錢用浮點,遲早被人扁 ),但檢視程式,OracleCommand執行查詢,由NUMBER(14,6)欄位直接SELECT取值,未經過任何計算,資料由OracleDataReader讀取交給JsonConvert轉換,程式寫法沒有可議之處,決定使用浮點型別(double)的犯人--顯然是OracleDataReader...
Posted 25 June 2014 10:17 PMJeffrey | 2 comment(s) 4,503
Filed under:
Let It Go吧! System.Data.OracleClient
記得四年前微軟就 正式宣告 建議大家不要再用System.Data.OracleClient,改用ODP.NET。當時Oracle對LINQ支援還不太好,想用LINQ或EF得尋求3rd Party解決方案,從 ODAC 11.2 起,Entity Framework已是ODP.NET標準配備,System.Data.OracleClient的存在就更只剩下向前相容。 今天幫忙射掉茶包一枚: 使用SQLPlus執行SELECT * FROM BIGTABLE查詢約3萬6千筆資料耗時50秒,執行以下...
Posted 20 June 2014 09:25 PMJeffrey | with no comments 4,265
Filed under:
SQLPlus執行UTF-8編碼指令檔
作業環境有個需求: 有一些PL/SQL DDL指令需先匯成sql檔,再透過程式呼叫SQLPlus.exe執行。 SQLPlus.exe可讀入SQL Script檔案直接執行,例如: sqlplus –s user/pwd @script.sql,而透過程式啟動外部EXE也不是問題,一切看似小菜一碟... BUT! 人生最厲(ㄐㄧ)害(ㄨㄞ)的就是這個BUT! 問題出在SQLPlus在命令提示視窗(Command Prompt)執行,只支援ANSI編碼,而script.sql可能包含Unicode文字...
Posted 24 May 2014 09:40 AMJeffrey | with no comments 13,777
Filed under: ,
SQL Server x64建立Oracle Linked Server筆記
過去已有很多在SQL 2005/SQL 2008建立Oracle Linked Server的經驗,本屬稀鬆平常小事,今天第一次在SQL 2008 R2 x64執行,發現有些眉角,特筆記之。 需安裝64位元版Oracle Provider for OLE DB 明明機器每天在跑.NET程式連Oracle,卻發現Linked Server的Provider中沒有Oracle Provider for OLE DB可選! 這才想到,原本只裝了32位元版ODAC 11.2,.NET程式也都切成x86執行...
Posted 26 October 2012 11:23 PMJeffrey | 2 comment(s) 20,100
Filed under: ,
【茶包射手日記】安裝ODAC 11.2 Release 5後Visual Studio無法使用Oracle資料來源
使用Visual Studio 2012已經好一陣子,手上的專案也逐一改用VS2012維護開發。今天處理的專案剛好涉及Oracle,想當然爾,要用 Entity Framework 才是王道! 此時發現原先安裝的ODAC 11.2 Release 4,只支援到VS2010,在VS2012新增ADO.NET Entity Data Model時,Data source沒有"Oracle Database (Oracle ODP.NET)"可選,所幸Oracle已於9/11推出 ODAC...
ODP.NET版本暴力解法之懶人工具
ODP.NET的版本問題一直像鬼魅般苦苦糾纏,最近又碰上了... orz 經 前一篇文章 證實,在參考ODP.NET 10.2的ASP.NET網站,若再引用參考了ODP.NET 11.2的其他元件,將產生has a higher version than referenced assembly編譯錯誤,且無法以bindingRedirect解決。有顆共用元件要提供給多個專案使用,有些專案仍須維持ODP.NET 10.2,有些專案則已經更新到ODP.NET 11.2,且實務上無法要求大家統一。因此...
Posted 25 August 2012 11:00 AMJeffrey | with no comments 6,414
Filed under: , ,
更多文章 « 上一頁 - 下一頁 »

搜尋

Go

<April 2017>
SunMonTueWedThuFriSat
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication