Browse by Tags

Hacking樂無窮:修正Dapper+ODP.NET無法寫入Unicode問題
歷經一段時間摸索歷練,確立「新増修改用EF/ORM,查詢一律用Dapper」的最高指導原則,Dapper的簡潔、效能與彈性無可挑剔,一切看似完美,直到我膝蓋中了一箭… 無意間發現,使用Dapper+ODP.NET無法寫入Unicode字元 跟Oracle Unicode問題奮戰 超過10年 ,以為妖孽已被降伏,用OracleDbType.NVarChar2應該就萬無一失,甚至要在CommandText中用N'…'也 不是問題 ,萬萬沒想到Oracle Unicode問題今天又跑出來咬我屁股...
Posted 21 August 2016 09:56 PMJeffrey | with no comments 5,892
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 14,867
Filed under: ,
讓OracleCommand.CommandText中N'...'正確被解讀
今天是值得紀念的一天!! 多年以來,我 一直以為 在非Unicode編碼ORACLE資料庫中正確塞入難字的唯一方法,只能透過OracleParameter... 手上有個應用,我寫的.NET程式要接收其他程式傳來的CommandText執行,而其中包含以N'...'方式新增難字內容的指令。無力改變這個協同運作方式,只能被逼著要解開這個謎團---到底要怎樣才能讓N'...'的難字正確送到ORACLE上執行呢? 不抱太大希望地在網路爬文,大概是多年來為了ORACLE Unicode問題煞費苦心孝感動天...
Oracle資料庫為AL32UTF8時VARCHAR2即可存Unicode
學海無涯! 一直以來, 要放Unicode文字就得開NVARCHAR欄位 的觀念深植我心。直到今天聽一位同事說: 如果Oracle資料庫的字元集設成Unicode,開VARCHAR就好了,不必為Unicode特意開NVARCHAR。 這顛覆了我的認知,但也不確定我根深蒂固的觀念是否隨軟體版本演進早已有所誤差。在噗浪上發問後,陸續收到一些回應: Access, MySQL, PostgreSQL都是如此(謝謝Bill, 鳥毅),噗友王圓外更是直接證實這點,於是也我寫了個小程式,找了台NLS_CHARACTERSET...
Posted 15 July 2010 07:28 PMJeffrey | 1 comment(s) 9,419
Filed under: ,
【茶包射手專欄】ASP.NET在IIS7上讀不到Oracle中文
測試Silverlight的過程中,發現我的Web Application Project,使用Visual Studio 2008直接執行時測試正常,但移到IIS7下執行,由Oracle讀取的中文卻會變成問號。 我將程式簡化如下: using (OracleConnection cn = new OracleConnection(cnStr)) { cn.Open(); OracleCommand cmd = new OracleCommand( "SELECT '良好'...
TIPS-用ADO.NET寫入BIG5罕用字到ORACLE VARCHAR
上回我們破解過" 用ADO.NET讀取ORACLE VARCHAR中的BIG5罕用字 ",今天又有人出了難題--如何將BIG5罕用字寫入ORACLE VARCHAR2欄位? 經實驗,單純用cmd.Parameters.Add("param", OracleType.VarChar).Value="含罕用字/造字的字串",則所有的罕字與造字在資料表中會變成問號。我猜與讀取時面對的問題完全相同,資料從網路接收到OracleClient解析完成的過程中...
中文亂碼"蕞蕞蕞蕞"是怎麼來的?
同事遇到一個問題,User抱怨SSIS由ORACLE轉資料到SQL後,所有的中文字都變成"蕞蕞蕞蕞..."了。 (這個字唸"最",不唸"叢"! 慣用倉頡的我本來是不會去研究讀音的,不過看到個性豪邁的User小姐在信中寫道"不會唸厚, 拎北 查好了,這二個字叫『最最』不叫『叢叢』…",我想我這輩子都不會唸錯了 XD) SSIS在ORACLE與SQL搬資料時的編碼問題,過去 遇過 ,加上發現只有用特定的機器跑SSIS時會變亂碼...
Posted 04 July 2008 08:34 AMJeffrey | 7 comment(s) 16,667
Filed under: ,
KB-Oracle 9i NVarchar求生守則
同事反應,一個CharacterSet設為ZHT16BIG5的Oracle 9i的資料庫,其中某個Table的NVarchar2欄位完全不接受非BIG5字元, 存入時會變成"?"。攪和了近一個月,反覆嘗試了多種工具、方法,也請教了朋友、求助Oracle Support、查了Oracle KB, 結論幾乎都指向---"Oracle 9i的NVarchar在非UTF8字元集資料庫裡無法接受非BIG5字元,而會將其轉為問號。 要解決這個問題的唯一方法是是將資料庫字元集設為UTF8...
KB-在Oracle中直接取得中文字串長度
今天接到個頗具挑戰性的需求。 由於轉檔程式要輸出固定寬度的文字欄位,所以要視字串長度在後方補足空白。因中文字在不同Encoding下的長度不同(例如: BIG5 2bytes, UTF8 3bytes),加上中英文可能交雜,所以用.NET下的System.Text.Encoding.GetEncoding("big5").GetByteCount("中文字串ABC");是最簡便有效的方法(若是VBS、VB6,可以考慮用ADODB.Stream勉強替代)。 不過...

搜尋

Go

<August 2017>
SunMonTueWedThuFriSat
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

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

文章典藏
其他功能

這個部落格


Syndication