一、出現症狀
1、使用sqlplus連接正常
2、C#使用10g的ODP.NET連接時,報上面的錯誤
二、原因
1、Oracle11G之前密碼是不區分大小寫的,從11G開始默認密碼區分大小寫
2、使用10G的ODP.NET時,會自動把密碼轉換成大寫
三、解決辦法
1、給連接字符串中密碼使用加上引號,這樣密碼就不會轉成大寫了
2、換成11G客戶端
3、修改數據庫,禁用大小寫敏感模式:ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE
因我的連接字符串是寫在XML文件里,在XML文件里“引號”是需要轉義的,現提供XML中常用的轉義字符:
< | < | 小於號 |
> | > | 大於號 |
& | & | 和 |
' | ' | 單引號 |
" | " | 雙引號 |