oracle decode函數(shù)的用法 python3.6cx_oracle連接數(shù)據(jù)庫(kù)報(bào)編碼錯(cuò)UnicodeDecodeError?
python3.6cx_oracle連接數(shù)據(jù)庫(kù)報(bào)編碼錯(cuò)UnicodeDecodeError?我說(shuō)下我遇到的情況數(shù)據(jù)庫(kù)字符集是 ZHS16GBK錯(cuò)誤的情況是UnicodeDecodeError: "gb
python3.6cx_oracle連接數(shù)據(jù)庫(kù)報(bào)編碼錯(cuò)UnicodeDecodeError?
我說(shuō)下我遇到的情況數(shù)據(jù)庫(kù)字符集是 ZHS16GBK錯(cuò)誤的情況是UnicodeDecodeError: "gbk" codec can"t decode byte 0xa7 in position 12: illegal multibyte sequence經(jīng)過檢查,在fetchall()獲取記錄時(shí),查詢到的記錄里面有亂碼(應(yīng)該是不包含在數(shù)據(jù)庫(kù)現(xiàn)有字符集下的字符)臨時(shí)的一個(gè)解決辦法是db=cx_Oracle.connect(dblink,encoding="UTF-8")這樣可以讀取了,讀取到的內(nèi)容為廣州市同泰路
mysql decode函數(shù)嗎?
在ORACLE數(shù)據(jù)庫(kù)里decode函數(shù)實(shí)現(xiàn)的功能,于MySQL數(shù)據(jù)庫(kù)里可以使用case when函數(shù)來(lái)替代; MySQL數(shù)據(jù)庫(kù)的decode函數(shù)是解密函數(shù),它是加密函數(shù)encode的反函數(shù),與ORACLE數(shù)據(jù)庫(kù)里decode函數(shù)實(shí)現(xiàn)的功能完全不同。 ORACLE數(shù)據(jù)庫(kù)里decode函數(shù)相當(dāng)于MySQL數(shù)據(jù)庫(kù)里的case when函數(shù),只是前者看起來(lái)更加緊湊。
sql decode函數(shù)用法?
decode函數(shù)比較1個(gè)參數(shù)時(shí)
SELECT ID,DECODE(inParam,"beComparedParam","值1" ,"值2") name FROM bank
#如果第一個(gè)參數(shù)inParam=="beComparedParam",則select得到的name顯示為值1,
#如果第一個(gè)參數(shù)inParam!="beComparedParam",則select得到的name顯示為值2
decode函數(shù)比較多個(gè)參數(shù)時(shí)
SELECT ID,DECODE(inParam,"para1","值1" ,"para2","值2","para3","值3","para4","值4","para5","值5") name FROM bank
#如果第一個(gè)參數(shù)inParam=="para1"那么那么select得到的那么顯示為值1;
#如果第一個(gè)參數(shù)inParam=="para2"那么那么select得到的那么顯示為值2;
#如果第一個(gè)參數(shù)inParam=="para3"那么那么select得到的那么顯示為值3;
#如果第一個(gè)參數(shù)inParam=="para4"那么那么select得到的那么顯示為值4;
#如果第一個(gè)參數(shù)inParam=="para5"那么那么select得到的那么顯示為值5;