Browse by Tags

System.Data.OracleClient將走入歷史
印象中有看過微軟未來將不再建議使用System.Data.OracleClient,昨天無意翻到正式 宣告文 ,特別PO文整理一下。 主要考量是有很大比例的使用者,實務上用的都是夥伴廠商提供的ADO.NET Provider,一方面是配合Oracle改版的更新腳步較快,能較快用到資料庫的新功能,另一方面這些廠商都提供了不錯的軟體品質及客服支援。ADO.NET Team評估之後,認為即便繼續投注心力強化,也很難將使用者拉回ADO.NET OracleClient。(頗有"閃開! 讓專業的來"的感覺...
Posted 14 May 2010 09:49 AMJeffrey | 2 comment(s)
Filed under: ,
Oracle Distributed Transaction Error
寫了以下的程式做SQL與Oracle的分散式交易: using (System.Transactions.TransactionScope tx = new System.Transactions.TransactionScope()) { //... Update data on SQL Server ... using (OracleConnection cn = new OracleConnection(cnStr)) { cn.Open(); OracleCommand cmdOra =...
Posted 17 October 2009 04:36 AMJeffrey | with no comments
Filed under: , ,
Oracle LINQ之路
自從學會LINQ to SQL後,我就愛死那種忘記SqlConnection、丟掉SqlCommand、抛下SqlParameter的簡潔,乾乾淨淨 幾行Code 就搞定查詢、新增、修改、刪除的感覺。 無奈在公司,就算先撇開專案團隊成員是否已具備LINQ技能的問題,面對Oracle林立的工作專案環境,抬出LINQ to SQL無疑是張飛打岳飛,只能乖乖回去用OracleCommand、OracleParameter行禮如儀。 不過,我還是沒有放棄在Oracle專案使用LINQ的念頭。 ADO.NET...
OracleConnection Pooling及OracleDataReader.Close()
依過去的 經驗 ,Oracle資料庫重啟或連線中斷後,Connection Pool裡會存留一些無效連線,除了IISRESET或重啟程式外,似乎無法透過程式自行剔除Pool裡的連線。但我今天才發現,原來從.NET 2.0起,SqlConnection與OracleConnection早就新增了兩個Static Method可以用來解決類似問題: ClearPool 、 ClearAllPools 。 寫了以下範例,cnStrMonitor與cnStrTester用了是不同的Username,於是我就可以透過統計v...
MEMO-取回Oracle Procedure Ref Cursor
[MEMO系列是老人家備忘用途的貼文,可能沒什麼營養,大家請姑且看之或逕行忽略。] 好久沒跟ORACLE纏綿惹,這陣子都在跟SQL Server廝混。這幾天接手另一個連線ORACLE的專案,在呼叫ORACLE Procedure透過Ref Cursor傳回結果時,腦中已不太記得精確寫法,只記得Ref Cursor的值可以直接用來Fill DataTable或轉成OracleDataReader,胡亂湊出程式碼,系統卻一直傳回以下錯誤: ORA-06550: line 1, column 7:.PLS...
Posted 23 July 2009 01:27 PMJeffrey | with no comments
Filed under: , ,
【茶包射手專欄】OracleClient LEFT JOIN時出現ORA-01405
小熊子的 KB-當 ADO.NET 與 Oracle 問題集錦 裡有個Tip,使用System.Data.OracleClient會產生ORA-01405: fetched column value is NULL,改用Oracle.DataAccess.Client就正常。 對這個問題做了點深入的研究,原本會產生錯誤的程式很龐雜,我將程式碼簡化但仍保有可產生ORA-01405的地步。 using System; using System.IO; using System.Threading; using...
TIPS-用ADO.NET寫入BIG5罕用字到ORACLE VARCHAR
上回我們破解過" 用ADO.NET讀取ORACLE VARCHAR中的BIG5罕用字 ",今天又有人出了難題--如何將BIG5罕用字寫入ORACLE VARCHAR2欄位? 經實驗,單純用cmd.Parameters.Add("param", OracleType.VarChar).Value="含罕用字/造字的字串",則所有的罕字與造字在資料表中會變成問號。我猜與讀取時面對的問題完全相同,資料從網路接收到OracleClient解析完成的過程中...
OracleCommand.Parameters.AddWithValue
不知怎麼了,每次寫ORACLE存取程式都會在咒罵中度過"美好"時光,剛才花了半小時處理一個錯誤: ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'MYSTOREDPROC' 程式碼差不多像以下這個樣子,要傳入十五個名稱又臭又長的參數給一個Procedure: OracleCommand cmd = new OracleCommand( "MyStoredProc"...
我的奮鬥-System.Data.OracleClient on Windows 2008 x64
自從家中與公司的機器分別改用Vista x64及Windows 2008 x64後,在享受爽快揮霍記憶體之餘,也一併開始體驗在新大陸拓荒的感覺。大部分的高階應用程式,多半可以x86虛擬環境執行,問題不大。但有不少涉及低階處理的程式選擇頓時劇減,例如: RamDisk因為Driver未具備簽章無法使用、能支援x64的免費防毒軟體屈指可數、之前提到重新Survey了 DVD燒錄程式 ... 這些軟體上的短缺咬一咬牙就撐過了,最讓我痛苦的是原本部門大家慣用的ODP.NET 9207完全不支援x64版本...
Unassigned Parameter in ODP.NET and System.Data.OracleClient
今天抓了一個小問題, 又是 因System.Data.OracleClient與ODP.NET行為不同所致: using (OracleConnection cn = new OracleConnection( "Data Source=MyOracle;User Id=myUser;Password=myPass;" )) { OracleCommand cmd = new OracleCommand( "SELECT * FROM UserTable WHERE...
Posted 19 May 2008 05:35 PMJeffrey | with no comments
Filed under: ,
.NET分散式交易程式開發FAQ
當系統存取的資料庫伺服器超過一台,或涉及異種資料庫平台間的資料整合,常常就會伴隨分散式交易(Distributed Transaction)的需求。這門進階的學問,在運用的實務上,瑣碎曲折的小細節還挺多的。 以下是我在RUN!PC發表過的文章,整理了使用.NET程式整合MSDTC做分散式交易的一些經驗分享,內容包含了: 常見的疑難雜症及排除方法、分散式交易狀況的偵測、SQL 2005的LTM與OleTx模式、不同做法的效能比較... 等等,在此提供大家參考。 文章下載 【其他相關文章】 KB-.NET...
KB-ODP.NET OracleDataReader的資料型別轉換問題
這是同事發現的有趣現象(雖然她完全笑不出來)... 在ORACLE建了以下Table,並塞入一筆資料9.3到NUMBER(6,2)欄位中 CREATE TABLE PRECTEST (N NUMBER(6,2)); INSERT INTO PRECTEST VALUES (9.3); 然後用ODP.NET執行以下的程式 string cmdStr = "SELECT N FROM PRECTEST" ; using (OracleConnection cn = new OracleConnection...
用暴力攻擊法找出長度不足的Oracle欄位
搞破解的人大概都知道什麼叫 暴力攻擊法 吧! 今天被一個ORACLE Error搞得極度火大,利用OracleCommand INSERT資料,ORACLE冷冷地說: "ORA-01401 inserted value too large for column" ,很好,給的字串太長? 為何不說哪個欄位有問題? 我用OracleParamer沒法直接轉出SQL語法去SQLPLUS驗證,而且總共有三四十個欄位耶~~ 你不要光搖頭!! 你倒是說呀!! 你給我說呀!!(猛力搖晃肩膀...
ORACLE Transaction大車拼!
為了測試使用System.Data.OracleClient、ODP.NET(Oracle.DataAccess.Client)與 TransactionScope 三者的效能差距,我設計了以下的實驗,分別用三種方式(因ODP.NET 9207還不支援TransactionScope,所以TransactionScope搭配System.Data.OracleClient使用)將三個Insert動作包成Transaction,並各測十次。 static object obj = new object...

搜尋

Go

<July 2010>
SunMonTueWedThuFriSat
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567
 
RSS
【工商服務】
最新回應

Tags 分類檢視
關於作者

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

文章典藏
其他功能

這個部落格


BlogLook Score and Rank

Syndication