[問題] python寫中文到teradata的問題

看板Python作者 (讓我們看雲去)時間5年前 (2018/09/13 00:14), 編輯推噓1(100)
留言1則, 1人參與, 5年前最新討論串1/1
大家好 最近要用python3寫資料到teradata 但遇到神奇的事 teradata的VARCHAR欄位 寫入英文與數字沒問題 但寫入中文字就不行了 程式: connection= pyodbc.connect("driver={Teradata};dbcname=" + host + ";uid=" + user + ";pwd=" + pwd + ";charset=utf8;", autocommit=True) connection.setdecoding(pyodbc.SQL_CHAR, encoding='utf-8') connection.setdecoding(pyodbc.SQL_WCHAR, encoding='utf-8') connection.setdecoding(pyodbc.SQL_WMETADATA, encoding='utf-8') connection.setencoding(encoding='utf-8') cursor= connection.cursor() cursor.execute("INSERT INTO table(CUSTOMER_ID, HEADQ_BR_CD, STATUS, OWNER_NAME, BUSINESS_NAME,ADDRESS,CAPITAL,ORGANIZATION_TYPE,REGISTER_DATE,REGISTER_TYPE,REGISTER_TYPE_NAME) VALUES('3764H','aa','非營','cc','','','500','','102041','56555','')"); print("ok") #disconnect connection.close() 錯誤訊息 --------------------------------------------------------------------------- Error Traceback (most recent call last) <ipython-input-196-18f43ad125bd> in <module>() 21 cursor= connection.cursor() 22 # create employee table ---> 23 cursor.execute("INSERT INTO table(CUSTOMER_ID, HEADQ_BR_CD, STATUS, OWNER_NAME, BUSINESS_NAME,ADDRESS,CAPITAL,ORGANIZATION_TYPE,REGISTER_DATE,REGISTER_TYPE,REGISTER_TYPE_NAME) VALUES('3764H','aa','非營','cc','','','500','','102041','56555','')"); 24 print("ok") 25 #disconnect Error: ('HY000', '[HY000] [Teradata][ODBC Teradata Driver][Teradata Database](-6706)The string contains an untranslatable character. (-6706) (SQLExecDirectW)') 在teradata建立table時 這些VARCHAR欄位的charset有設成LATIN python3預設好像是utf-8 不知道是否因此影響中文字的寫入? 我是不是寫入前要把字串轉成LATIN ? python有辦法把utf-8轉成LATIN嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.77.125 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1536768851.A.AE5.html

09/13 00:42, 5年前 , 1F
latin(拉丁) 怎麼會有中文呢...
09/13 00:42, 1F
文章代碼(AID): #1RcJjJhb (Python)