You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Visual Studio连接Oracle报ORA-01017错误,SQL Plus可正常连接求排查

解决Visual Studio连接Oracle时的ORA-01017错误(SQL Plus可正常连接)

以下是几种常见的原因及对应解决办法:

  • 密码大小写严格匹配问题
    Oracle默认不区分密码大小写,但如果数据库开启了SEC_CASE_SENSITIVE_LOGON=TRUE,SQL Plus可能自动忽略大小写,而VS使用的ODP.NET驱动会严格校验凭据。比如你在SQL Plus输入小写密码能登录,但VS里必须输入和账户创建时完全一致的大小写密码。
    解决:在VS的连接字符串里输入精确大小写的密码;或者执行ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON=FALSE;关闭大小写校验(需DBA权限)。

  • Oracle客户端与VS驱动版本不兼容
    SQL Plus用的是本地Oracle客户端,而VS依赖的ODP.NET驱动版本如果和服务器端不匹配,可能导致凭据校验失败。比如服务器是Oracle 19c,但VS用的是ODP.NET 11g驱动。
    解决:将ODP.NET驱动更新到与Oracle服务器对应的版本;或者检查系统PATH环境变量,确保VS优先使用和SQL Plus相同的Oracle客户端路径。

  • 密码含特殊字符未转义
    如果密码里有@、&、;这类特殊字符,SQL Plus里用双引号包裹即可正常输入,但VS的连接字符串里需要正确处理。比如密码是P@ssw0rd,直接写在连接字符串里会被错误解析。
    解决:把密码用双引号包裹,比如连接字符串写成:Data Source=ORCL;User Id=MYUSER;Password="P@ssw0rd";;或者对特殊字符进行转义(如@转成\@)。

  • 连接池缓存旧凭据
    VS的数据库连接池可能缓存了之前错误的凭据,即使你现在输入正确信息,也会用旧凭据尝试连接。
    解决:在连接字符串里临时添加Pooling=False禁用连接池,测试是否能正常连接;或者关闭VS后重新打开,清空连接池缓存。

  • DSN配置错误
    如果VS通过ODBC数据源(DSN)连接,可能DSN里保存的用户名/密码和你手动输入的不一致,或者DSN指向了其他数据库实例。
    解决:直接使用手动输入的连接字符串(不依赖DSN);或者打开ODBC数据源管理器,重新配置DSN的凭据和服务器地址。

内容的提问来源于stack exchange,提问作者Rishikesh Chava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 07:12:53