如標題…

Try了老半天

原來是要用odbc的方式,接下來我就把這個實作的過程log下來好了,如果以後有人需要的話或自己忘了的話,也可以參考..

在odbc設定完之後,有一個地方一定要設對,不然寫入的中文字還是亂碼,這個charset的部份一定要對應server的設定…目前我測試起來的結果是用utf8,中文是ok的。

image

odbc設定好了,測試連線也ok之後,回到ssis

我先將我自己測試的結果,一直是錯的訊息,先說一遍好了

我以為sybase有提供oledb的driver了,應該就用oledb的方式連線效能會比較快,但無奈ssis2008一直有問題,以下就看我慢慢說明囉!


我在我的dts中加入二個資料來源,一個是oledb,一個是odbc

image

然後拉一個

image

先測試看看單純的下刪除指令是否ok

image



在上圖中,我是指令oledb的資料來源,這個結果是ok的

image

接下來我要測試新增指令,一樣再拉另一個執行sql工作的控制項

image

內容如下,我也是用ole db

image

但執行結果卻變成..

image

看了一下訊息是..


[執行 SQL 工作] 錯誤: 執行查詢 "insert into collectorder(orderno,prod) values(1,'中..." 失敗,發生下列錯誤: "[Native Error code: 2432]
[DataDirect ADO Sybase Provider] Illegal byte sequence encountered in Unicode data during implicit conversion of VARCHAR value '中' to a UNIVARCHAR field.
"。可能的失敗原因: 查詢發生問題、未正確設定 "ResultSet" 屬性、未正確設定參數,或未正確建立連接。





上述的訊息,看來是無法轉換..varchar到univarchar,因為sybase對於中文字要開univarchar才會對,不過這應該也是跟server的設定有關係吧..


後來我再使用odbc來試看看,這次不同的是connectiontype的地方我是選ado.net,connection的部份則是選我設定的odbc資料來源,一樣的sql 語法

image

執行結果..

image

過了…

來看看寫入的值對不對,使用vs2008的伺服器總管來連接sybase資料庫,查詢資料,ok了!中文沒有亂碼

image

但odbc的charset是重點之一哦,如果沒有設定對,就算ssis執行成功,但資料寫入的還是亂碼哦..這點要注意

arrow
arrow
    全站熱搜

    丫德 發表在 痞客邦 留言(0) 人氣()