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:"有几种方法可以识别数据库:

  1. 如果数据库是本地的,指定SID或服务名称将是 够了。
  2. 如果数据库定义在 TNSNAMES.ORA 文件中,您可以使用 文件中给出的服务名称
  3. 要在没有 TNSNAMES.ORA 文件的情况下进行连接,您可以使用 EZCONNECT url, 形式为://host[:port][/service_name]