标签: oracle-call-interface

SQLSTATE [HY000]:OCISessionBegin:ORA-21561:OID生成失败

我尝试在我的一个Web服务器上执行PDO OCI SQL查询时收到以下错误:

SQLSTATE[HY000]: OCISessionBegin: ORA-21561: OID generation failed
Run Code Online (Sandbox Code Playgroud)

我已经确认可以从机器访问Oracle服务器并且网络配置看起来很好.谷歌的回报非常少,而且效果不是很有帮助.

有没有其他人遇到这个,或有任何关于如何解决的建议?

php oracle pdo oracle-call-interface

8
推荐指数
2
解决办法
8404
查看次数

调用未定义的函数oci_connect,php_oci8_12c.dll,windows 8.1,php5.6.6

我有一个简单的PHP脚本:

<?php
$db_user = 'myusername';
$db_pass = 'mypassword';
$db_sid = 'mysid';
$conn = oci_connect( $db_user, $db_pass, $db_sid );
?>
Run Code Online (Sandbox Code Playgroud)

当我运行它(从浏览器或从命令行),我得到错误:

Call to undefined function oci_connect
Run Code Online (Sandbox Code Playgroud)

我正在使用PHP 5.6.6,它已经附带了php_oci8_12c.dll.

我有extension=php_oci8_12c.dll我的php.ini

我已经安装了即时客户端(12.1) - 尝试过32位版本和64位版本

我有ORACLE_HOME和TNS_ADMIN环境变量指向即时客户端文件夹(C:\ instantclient_12_1).

我的路径中也有C:\ instantclient_12_1

我在同一个文件夹中有一个tnsnames.ora,其中包含相关条目:

MYSID =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = myhost.net)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = MYSERVICE)
    )
  )
Run Code Online (Sandbox Code Playgroud)

我还从http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html下载了SQLDeveloper .

SQLDeveloper工作,识别上面提到的tnsnames.ora并连接并成功运行我的php脚本试图访问的同一数据库上的查询.

几天后我花了几个小时尝试不同的事情无济于事.

我正在使用:

php 5.6.6
windows 8.1
IIS (so no answers involving apache please)
cmd …
Run Code Online (Sandbox Code Playgroud)

php oracle oracle-call-interface oracle11g

8
推荐指数
1
解决办法
4万
查看次数

SQuirreL SQL中缺少Oracle OCI和Thin驱动程序

我下载了SQuirreL SQL,我想将它用作Oracle客户端,但是当我转到Drivers选项卡时,缺少以下jar:

  • Oracle OCI驱动程序
  • Oracle瘦驱动程序

    驱动程序OCI和瘦驱动程序

我该如何解决这个问题?

oracle-call-interface squirrel-sql ojdbc

8
推荐指数
1
解决办法
2万
查看次数

Oracle是否为OCCI/OCI提供公共符号文件(PDB)?

OTN线程:Oracle是否为OCCI/OCI提供公共符号文件(PDB)?

在Windows(使用Visual Studio或WinDBG)下调试使用OC [C]的应用程序时,如果有Oracle OCI/OCCI库的符号文件(PDB文件),通常会很方便.(公共符号文件,就像Microsoft为所有系统库提供的那样)

Oracle是否提供这些?

注意:这些公共符号文件对于Oracle库特别受欢迎,因为我们确实有一些崩溃,其中调用堆栈位于oci/occi库中,并且看起来似乎用于生成这些DLL的(可能是优化)设置有效地防止Visual Studio在这些库中显示用户转储的任何可用调用堆栈.

作为对前一段的进一步澄清:这并不意味着OCCI库中的崩溃.它只是意味着如果一个线程恰好位于OCCI调用内并且生成了用户转储(无论出于何种原因 - 可以根据需要为任何正在运行的应用程序生成),该线程的调用堆栈(至少是半)搞砸了.因此,公共符号文件将非常方便.

c++ windows oracle oracle-call-interface debug-symbols

7
推荐指数
1
解决办法
2230
查看次数

oci_bind_by_name和to_date PHP/OCI/Oracle

我有以下内容:

    $ARTIFACT_NAME = $_POST['ArtifactName'];
    $ARTIFACT_TYPE = $_POST['ArtifactType'];
    $ARTIFACT_LOCATION = $_POST['ArtifactLocation'];
    $ARTIFACT_DOMAIN = $_POST['ArtifactDomain'];
    $ARTIFACT_AUTHOR = $_POST['ArtifactAuthor'];
    $ARTIFACT_LABEL = 'DB_'.$ARTIFACT_LOCATION.'_'.$ARTIFACT_DOMAIN.'_'.$ARTIFACT_NAME;
    $AUDIT_CONSTRAINTS = $_POST['AuditConstraints'];
    $SECURITY_CONSTRAINTS = $_POST['SecurityConstraints'];
    $REGISTERED_EMAIL = $_SERVER['HTTP_REMOTE_USER'];
    $REGISTERED_TIMESTAMP = "to_date('15-08-2011 14:32:37', 'DD-MM-YYYY HH24:MI:SS')";

    $query =    "INSERT INTO ".$db_schema.".ARTIFACTS (ARTIFACT_ID, ARTIFACT_NAME, ARTIFACT_TYPE, ARTIFACT_LOCATION, ARTIFACT_DOMAIN, ARTIFACT_AUTHOR, ARTIFACT_LABEL, AUDIT_CONSTRAINTS, SECURITY_CONSTRAINTS, REGISTERED_EMAIL, REGISTERED_TIMESTAMP)
                VALUES (:bind1, :bind2, :bind3, :bind4, :bind5, :bind6, :bind7, :bind8, :bind9, :bind10, :bind11)";
    $statement = oci_parse($connection, $query);

    oci_bind_by_name($statement, ":bind1", $ARTIFACT_ID);
    oci_bind_by_name($statement, ":bind2", $ARTIFACT_NAME);
    oci_bind_by_name($statement, ":bind3", $ARTIFACT_TYPE);
    oci_bind_by_name($statement, ":bind4", $ARTIFACT_LOCATION);
    oci_bind_by_name($statement, ":bind5", …
Run Code Online (Sandbox Code Playgroud)

php oracle oracle-call-interface ora-01858

7
推荐指数
1
解决办法
8915
查看次数

致命错误:调用未定义的函数oci_connect()

我有下一行未注释(在我的php.ini中):

extension=php_oracle.dll 
extension=php_oci8.dll
Run Code Online (Sandbox Code Playgroud)

我下载了这个文件instantclient-basiclite-nt-11.2.0.2.0.zip并解压缩并将其放在驱动器D上...

我使用的是Windows XP

我像这样设置环境变量:

LD_LIBRARY_PATH     C:\instantclient_11_2:$LD_LIBRARY_PATH 
ORACLE_HOME     C:\instantclient_11_2 
Run Code Online (Sandbox Code Playgroud)

但是当我执行oci_connect()函数时,我看到了这个错误:

致命错误:在...中调用未定义的函数oci_connect()

我在erroeLog文件中发现了这个警告:

[29-Dec-2011 00:36:39] PHP警告:PHP启动:无法加载动态库'c:\ php\ext\php_oci8.dll' - 找不到指定的模块.在第0行的未知中

[29-Dec-2011 00:36:39] PHP警告:PHP启动:无法加载动态库'c:\ php\ext\php_oracle.dll' - 找不到指定的模块.

php oracle iis oracle-call-interface instantclient

7
推荐指数
1
解决办法
7万
查看次数

使用Ruby连接到Oracle DB

我很难连接到Oracle DB,已经阅读了很多东西,但没有结果的帮助.
我有远程Oracle DB,我使用DBVisualizer设置连接连接到它,如下所示:

DB Type : Oracle
Driver (jdbc) : Oracle thin
Database URL: jdbc:oracle:thin:@10.10.100.10:1521/VVV.LOCALDOMAIN
UserIdf: SomeUser
Pass: SomePass
Run Code Online (Sandbox Code Playgroud)

连接正常.

我在Ruby中做的是:

require 'oci8'
require 'dbi'
...

conn = OCI8.new('SomeUser','SomePass','//10.10.100.10:1521/VVV.LOCALDOMAIN')
...
Run Code Online (Sandbox Code Playgroud)

我得到的是:

ORA-12545: Connect failed because target host or object does not exist
oci8.c:360:in oci8lib.so
Run Code Online (Sandbox Code Playgroud)

ruby oracle database-connection oracle-call-interface

7
推荐指数
1
解决办法
2万
查看次数

IIS 8 - PHP管理器 - 为Oracle Connection启用php_oci8.dll

我需要在我的PHP代码中连接到Oracle DB.

我使用的是Windows Server 2012,带有PHP Manager的IIS 8和PHP 5.5.11版.我打开IIS PHP管理器,然后转到PHP Extensions,然后我启用了"php_oci8.dll"扩展.

extension=php_oci8.dll     
;extension=php_oci8_11g.dll
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试连接到Oracle DB时,我收到以下PHP错误:

PHP Fatal error:  Call to undefined function oci_connect()
Run Code Online (Sandbox Code Playgroud)

我刚刚使用IIS管理器重新启动IIS,但没有完成计算机重启.我需要重启吗?

我是否还需要下载"instantclient-basic-windows.x64-12.1.0.1.0.zip"?我试图提取它并将目录放在"Path"环境变量中,但仍然无法正常工作.

PHPInfo的配置命令:

cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack" 
"--disable-zts" "--disable-isapi" "--disable-nsapi" "--without-mssql" 
"--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=C:\php-sdk\oracle\x86\instantclient10\sdk,shared" 
"--with-oci8=C:\php-sdk\oracle\x86\instantclient10\sdk,shared" 
"--with-oci8-11g=C:\php-sdk\oracle\x86\instantclient11\sdk,shared" 
"--with-enchant=shared" "--enable-object-out-dir=../obj/" 
"--enable-com-dotnet=shared" "--with-mcrypt=static" 
"--disable-static-analyze" "--with-pgo"
Run Code Online (Sandbox Code Playgroud)

非常感谢你提前.

php oracle oracle-call-interface iis-8 php-manager

7
推荐指数
1
解决办法
5588
查看次数

在XP XP SP3上,SQLPLUS无法使用oracle即时客户端运行

我有一台计算机充当Oracle数据库11g企业版的服务器.我想使用另一台计算机,一台运行Windows XP SP3的PC作为此服务器的客户端.

所以我决定在客户端PC上安装Oracle Instant Client 11.2.0.4.0.我从Oracle OTN下载了压缩文件并将其解压缩到文件夹中c:\oracle\instantclient11.2.0.4.0.然后我将此路径添加到系统路径变量,并创建了另一个名为TNS_ADMIN变量名的系统变量,其中Oracle Instant Client具有相同的路径c:\oracle\instantclient11.2.0.4.0.

最后我从服务器pc复制了tnsnames.ora.

所以我想尝试从cmd.exe运行sqlplus,但错误是:

The procedure entry point OCIBindByName2 could not be located in the dynamic link library OCI.dll .
Run Code Online (Sandbox Code Playgroud)

有谁能够帮我?

oracle sqlplus oracle-call-interface oracle11g

7
推荐指数
1
解决办法
4843
查看次数

PHP/OCI - 无法从临时表中的 Oracle 过程中获取结果

我正在尝试使用 PHP OCI Oracle 函数做两件事:

  1. 在 Oracle 数据库中运行包过程。
  2. 包运行后,查询临时表以获取过程操作的结果。

我能够使用 Oracle 提供的 SQL Developer 软件成功地做到这一点。我的查询非常基本,如下所示:

BEGIN
    PKG_KTY_SEARCH.PR_PRICE_LIST();
END;
/
SELECT * FROM kty_web.KTY_PROD_PRICE_TEMP;
Run Code Online (Sandbox Code Playgroud)

上面的代码运行良好,我在 SQL Developer 中得到了完整的结果表。

我正在尝试使用 OCI 在 PHP 中做同样的事情。我的代码可以在下面看到:

<?php

// Load up the system.
require('../../system/init.php');

global $config;

$oracleDb = oci_new_connect($config['oracleDb']['username'], $config['oracleDb']['password'], $config['oracleDb']['connectionString']);

$firstStid = oci_parse($oracleDb, "BEGIN PKG_KTY_SEARCH.PR_PRICE_LIST(); END;");
oci_execute($firstStid);

$secondStid = oci_parse($oracleDb, "SELECT * FROM kty_web.KTY_PROD_PRICE_TEMP");
oci_execute($secondStid);

oci_fetch_all($secondStid, $result);

echo json_encode($result);

echo "<br />Import complete!";

?>
Run Code Online (Sandbox Code Playgroud)

然而,这不会返回错误,并且返回一个空的结果集。我不明白为什么。有人在这里看到我遗漏的任何明显的东西吗?

PHP 返回的结果集

{"PRODUCT_ID":[],"CUST_ROLE":[],"MIN_QTY":[],"MAX_QTY":[],"PRICE":[]}
Run Code Online (Sandbox Code Playgroud)

我的连接字符串如下:

$config['oracleDb']['connectionString'] = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS …
Run Code Online (Sandbox Code Playgroud)

php oracle oracle-call-interface

7
推荐指数
1
解决办法
147
查看次数