一、出现症状
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中常用的转义字符:
< | < | 小于号 |
> | > | 大于号 |
& | & | 和 |
' | ' | 单引号 |
" | " | 双引号 |
四、禁用大小写敏感
1. 找到参数
按上图所示,查询出该参数,再设置值为“False",并勾选中间的选框;然后重启服务,就OK了;