【问题标题】:ORA-12705: Cannot access NLS data files or invalid environment specified (ext\pdo_oci\oci_driver.c:686)ORA-12705: 无法访问 NLS 数据文件或指定的环境无效 (ext\pdo_oci\oci_driver.c:686)
【发布时间】:2014-09-16 13:54:36
【问题描述】:

我确实设置了 Apache 和 PHP,当我尝试通过 PDO 连接时,我收到了这条消息 我正在使用oracle 10g 企业管理。

OCISessionBegin: ORA-12705: Cannot access NLS data files or invalid environment specified  (ext\pdo_oci\oci_driver.c:686)

这就是我尝试建立oracle连接的方式

$tns = "
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = COD3R-PC)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = opera)
    )
  )
       ";
try {
    $conn = new PDO("oci:dbname=".$tns, 'customsearch', 'babaji');
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

【问题讨论】:

  • CONNECT_DATA你必须添加SIDSERVER你可以离开SERVICE_NAME
  • 另外,在$tns上方添加putenv("NLS_LANG=.WE8ISO8859P1");
  • @Daan 你能否更新答案,我的意思是如果可能的话,请显示我必须在答案中做的更改,所以我复制粘贴它。对不起,我不擅长这个语法。

标签: php oracle pdo


【解决方案1】:
putenv("NLS_LANG=.WE8ISO8859P1");
$tns = "
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = COD3R-PC)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = I_DONT_KNOW_YOUR_SID)
      (SERVER = DEDICATED)
    )
  )
       ";
try {
    $conn = new PDO("oci:dbname=".$tns, 'customsearch', 'babaji');
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-13
    • 2018-09-20
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多