2016年7月7日 星期四

bcp 轉出uft-8 檔案

sql server 2014前的版本的bcp 不支援匯出utf-8格式。

但sql server 2016的bcp則已有支援,以下是MSDN上的說明

13 版之前的版本 (SQL Server 2016) 不支援字碼頁 65001 (UTF-8 編碼)。 開頭為 13 的版本可以將 UTF-8 編碼匯入舊版的 SQL Server。

測了一下,DB仍是用SQL 2014,然後去下載sql 2016的odbc driver 13及command line utilities 13,可轉出UTF-8格式資料。

Microsoft® ODBC Driver 13 (Preview) for SQL Server® – Windows

Microsoft® Command Line Utilities 13 for SQL Server®

安裝後,使用C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\下的bcp 來進行資料轉出,如不確定bcp版本,可執行

bcp -v



最後指定code page完成UFT-8檔的轉出囉.

"C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\bcp" "exec zspTest 123" queryout "c:\temp\test.csv" -cC65001 -T -StestServer

2016年7月2日 星期六

informix Routine (equal) can not be resolved

使用TSQL慣了,再來寫其他資料庫的SQL時都覺得好痛苦。

尤其是寫INFORMIX的STORED PROCEDURE,更是覺得自已的效率好低。

因為不習慣在VI下編輯(足以證明我年紀還沒老到那個TERMINAL MODE的年代...),所以通常都是用NOTEPAD++寫好,再貼到VI下執行dbaccess(其實是VI不太會用啦...)

今天寫了一個漏漏長的SP,執行後一直有個錯誤

informix Routine (equal) can not be resolved

搞啥啊,找了半天根本也沒有一個叫equal的函數,用debug file方式下trace,才發現原來有一段SQL做了二個欄位的比較,回傳boolean的型態,結果我用了數值0/1來判斷造成的錯誤。(應該要用 variablename = 'T' 或 variablename = 'F'來判斷)

這訊息也太不直覺了吧。

每次寫完一個SP,都有點昏的感覺。

publish error allowDefinition='MachineToApplication'

一個老舊的aspx web form專案,調了一些功能建置成功,但進行部署時顯示以下錯誤。 在應用程式層級之外使用註冊為 allowDefinition='MachineToApplication' 的區段發生錯誤。錯誤的原因可能是虛擬目錄尚未在 IIS 中設定為...