Perl DBI 连接到 Oracle 12c
Perl DBI connecting to Oracle 12c
我正在使用 Perl DBI 并尝试连接到 Oracle 12c。我得到一个错误:
DBI connect('host=serverip;sid=comms;port=1521','comms',...) failed:
ORA-28040: No matching authentication protocol (DBD ERROR:
OCISessionBegin)
我的联系人是:
DBI->connect($connectionString, $user, $passwd,{PrintError=>1,
RaiseError=>1, AutoCommit=>1})
想知道DBI是否可以连接Oracle 12c?我应该改用别的东西吗?
我是 Perl 新手,非常感谢任何帮助。
谢谢。
似乎是 sqlnet.ora 文件 的问题。 客户端和服务器端中的sqlnet.ora文件的参数可能不同。
由于您没有发布所有详细信息,因此可能存在多个问题。然而,最常见的是 SQLNET.ALLOWED_LOGON_VERSION
.
阅读 Database Net Services Reference documentation 了解有关 sqlnet.ora 文件 的 参数的更多详细信息。
连接字符串的格式始终为:"dbi:Oracle:"有几种方法可以识别数据库:
- 如果数据库是本地的,指定SID或服务名称将是
够了。
- 如果数据库定义在 TNSNAMES.ORA 文件中,您可以使用
文件中给出的服务名称
- 要在没有 TNSNAMES.ORA 文件的情况下进行连接,您可以使用 EZCONNECT url,
形式为://host[:port][/service_name]
我正在使用 Perl DBI 并尝试连接到 Oracle 12c。我得到一个错误:
DBI connect('host=serverip;sid=comms;port=1521','comms',...) failed: ORA-28040: No matching authentication protocol (DBD ERROR: OCISessionBegin)
我的联系人是:
DBI->connect($connectionString, $user, $passwd,{PrintError=>1, RaiseError=>1, AutoCommit=>1})
想知道DBI是否可以连接Oracle 12c?我应该改用别的东西吗?
我是 Perl 新手,非常感谢任何帮助。
谢谢。
似乎是 sqlnet.ora 文件 的问题。 客户端和服务器端中的sqlnet.ora文件的参数可能不同。
由于您没有发布所有详细信息,因此可能存在多个问题。然而,最常见的是 SQLNET.ALLOWED_LOGON_VERSION
.
阅读 Database Net Services Reference documentation 了解有关 sqlnet.ora 文件 的 参数的更多详细信息。
连接字符串的格式始终为:"dbi:Oracle:"有几种方法可以识别数据库:
- 如果数据库是本地的,指定SID或服务名称将是 够了。
- 如果数据库定义在 TNSNAMES.ORA 文件中,您可以使用 文件中给出的服务名称
- 要在没有 TNSNAMES.ORA 文件的情况下进行连接,您可以使用 EZCONNECT url, 形式为://host[:port][/service_name]