Browse by Tags

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"...
ORACLE-NUMBER vs DECIMAL
又發現一個ORACLE的"特性"。 首先,ORACLE Function的傳回類別不能指定資料長度或精確度,我心中的直覺是,那會依RETURN數值的精確度而定吧? 我在函數中錯用了不太常用的DECIMAL型別。DECIMAL也可以跟NUMBER一樣宣告總位數及小數位數,但基於Function的限制,RETURN類別只能寫DECIMAL(不能指定精確度),內部運算則先宣告Result DECIMAL(7,6), 再RETURN Result。 測試結果,傳回值一律被轉成整數。但如果我用NUMBER取代DECIMAL...
Posted 06 November 2008 05:45 AM by Jeffrey | with no comments
Filed under:
ORACLE Funtion中的Data Not Found Exception
難得寫了一下ORACLE的Function,明明是很簡單的函數,卻又搞出不愉快的收場... (我跟ORACLE肯定八字不合) 我把情境簡化如下,函數會依傳入值去資料庫查出不同的結果傳回,為了展示起見,我用SELECT SYSDATE FROM DUAL來取代查資料庫的行為: CREATE OR REPLACE FUNCTION "SCH"."TESTNOTFOUND" (v_SayYes VARCHAR2) RETURN VARCHAR2 IS v_Return...
我的奮鬥-System.Data.OracleClient on Windows 2008 x64
自從家中與公司的機器分別改用Vista x64及Windows 2008 x64後,在享受爽快揮霍記憶體之餘,也一併開始體驗在新大陸拓荒的感覺。大部分的高階應用程式,多半可以x86虛擬環境執行,問題不大。但有不少涉及低階處理的程式選擇頓時劇減,例如: RamDisk因為Driver未具備簽章無法使用、能支援x64的免費防毒軟體屈指可數、之前提到重新Survey了 DVD燒錄程式 ... 這些軟體上的短缺咬一咬牙就撐過了,最讓我痛苦的是原本部門大家慣用的ODP.NET 9207完全不支援x64版本...
【茶包射手專欄】PB6.5連線Oracle 9.2i
PowerBuilder 6.5是化石級的軟體了,會從這篇TIPS受益的人全球可能不超過10個,不過前後處理過發生過兩次問題,花了我數小時,還是寫篇心得紀念一下。 同事最近升級了電腦,因為工作需要安裝了PB 6.5,但PB 6.5一直無法連上Oracle 9.2i的資料庫,PB跟Oracle Client重覆安裝反安裝十來次也無解,於是找我幫忙。 PB6.5真是個老軟體,內建的Native Oracle介面是7.3,額外可以多裝8.0.5,上網找到的一些說明,似乎當時最新的OS是Win95,媽呀...
Oracle版的GUI資料庫開發工具
網友Jasper提供了珍貴情資,Oracle終於推出GUI版的DB開發工具了-- Oracle SQL Developer ! (已推出一段時間了,我Lag很大) 依據官網的說明,Oracle SQL Developer提供了 一缸子的功能 ,涵蓋得挺廣的,除了基本的用GUI改Schema、查/改資料,還支援PL/SQL Debugging,不過同是Java開發的Aqua Data Studio 4.7的操作經驗相比,Oracle SQL Developer在執行某些動作時(例如展開Tables清單...
兩個Oracle Linked Server與SQL間資料移轉問題
我在一台SQL上設了Linked Server指向ORACLE,利用 INSERT INTO SqlTable SELECT * FROM LinkedOracleServer..MySchema.MyTable 的方法從ORACLE端匯資料過來,一路相安無事。 直到今天同事改了ORACLE上的Schema,將USERNAME由VARCHAR2改為NVARCHAR2,結果在倒資料時冒出以下錯誤: Msg 7356, Level 16, State 1, Line 5 The OLE DB provider...
【茶包射手專欄】ODP.NET Internal Error -3000
討厭的ORACLE又來找麻煩了。(好吧! 我承認我對ORACLE有成見) 同事將在其他台機器運作正常的ASP.NET程式移到自己的PC上執行,卻一直遇到以下錯誤: Oracle.DataAccess.Client.OracleException: 資料提供者內部錯誤(-3000) 英文: Data provider internal error (- 3000 ) [System.PlatformNotSupportedException: 目前的平台不支援 ResourcePool。 英文: 'ResourcePool'...
中文亂碼"蕞蕞蕞蕞"是怎麼來的?
同事遇到一個問題,User抱怨SSIS由ORACLE轉資料到SQL後,所有的中文字都變成"蕞蕞蕞蕞..."了。 (這個字唸"最",不唸"叢"! 慣用倉頡的我本來是不會去研究讀音的,不過看到個性豪邁的User小姐在信中寫道"不會唸厚, 拎北 查好了,這二個字叫『最最』不叫『叢叢』…",我想我這輩子都不會唸錯了 XD) SSIS在ORACLE與SQL搬資料時的編碼問題,過去 遇過 ,加上發現只有用特定的機器跑SSIS時會變亂碼...
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 PM by Jeffrey | 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, 你把空字串怎麼了?
腦海中一直存著清晰的一幕,牙牙學語摸索SQL語法的青澀少年Jeffrey,端坐SQL大師Ryan的跟前,聽著諄諄教誨: 孩子,閉上眼晴,用原力去感受... 在SQL世界裡NULL具有獨特的魔力,VARCHAR欄位儲存著NULL或是空字串? 在意義上是絕對不同的... 後來在DB、Web領域打滾多年,我常常採行這項Schema設計理念:NULL代表使用者未曾輸入過任何資料,空字串則代表使用者輸入了,但未指定任何值。在SQL Server的世界裡,這條鐵律一直運行得很好,直到我遇到了ORACLE.....
【茶包射手專欄】System.Data.OracleClient問題
部署一個新程式到一台主機上,得到以下錯誤訊息: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater. 同一程式在另一台主機上表現正常,而這台機器上其他ASP.NET程式跑ODP.NET連線Oracle也正常,可以推論已裝了Oracle 9.2 Client。那這是怎麼一回事呢? 在與Oracle Client交戰的經驗中,這類狀況多半是Oracle Client相關檔案存取問題引起的。廢話不多說...
TIPS-當Oracle Client遇上高精確度數字
同事遇到的問題。 用PL/SQL UPDATE資料表,設定一個NUMBER(30,10)欄位為2425251.6261653065(整數7位,小數10位,共17位),再SELECT時卻被四捨五入過,與原先的值不同。同事試了PL/SQL Developer與Toad都發生位數被偷工減料的情形,例如: Toad 的查詢結果如下,最後的53065硬生生變成531。 我試了手上的 Aqua Data Studio (4.7版是Free的,幾乎可頂替Toad)及 QueryExpress (非常輕巧的Query工具...
More Posts Next page »

Search

Go

<November 2008>
SunMonTueWedThuFriSat
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456
 
RSS
【工商服務】


BlogLook Score and Rank

Syndication