同样的用户和密码,PL/SQL可以正常登录,C#程序却出现 ORA-1017 用户名/口令无效

ORA-1017: 用户名/口令无效; 登录被拒绝

一、出现症状

 1、使用sqlplus和PL/SQL客户端连接正常

 2、C#使用Oracle.DataAccess.Client 连接时,报上面的错误

二、原因

 1、Oracle11G之前密码是不区分大小写的,从11G开始默认密码区分大小写

 2、使用10G的ODP.NET时,会自动把密码转换成大写

三、解决办法

 1、给连接字符串中密码使用加上引号,这样密码就不会转成大写了

 2、换成11G客户端

 3、修改数据库,禁用大小写敏感模式:ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE

因我的连接字符串是写在XML文件里,在XML文件里“引号”是需要转义的,现提供XML中常用的转义字符:

&lt; < 小于号
&gt; > 大于号
&amp; &
&apos; ' 单引号
&quot; " 双引号

 

原文

posted @ 2014-05-09 14:00  ^懒洋洋^  阅读(2047)  评论(0编辑  收藏  举报