问题标签 [oracle-call-interface]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2203 浏览

c++ - 使用 OCILIB 调用带有输出变量的 Oracle 过程

我有一个带有以下签名的程序:

当我使用 OCILIB 运行它时,我无法获得正确的 oCount 值。如果我将其注册为整数(使用 OCI_RegisterInt),则会收到错误消息:

ORA-03116: 传递给转换例程的缓冲区长度无效

如果我将它注册为字符串,它会运行,但 OCI_GetString 返回一个空指针,而 OCI_GetInt 返回 0(而不是预期的结果 1)。

测试代码为:

例如,使用 PL/SQL Developer 运行该过程可以正常工作。

这是使用 OCILIB 调用程序的正确方法吗?

另请注意,我使用的是库的混合版本。

0 投票
4 回答
843 浏览

oracle - 使用 Oracle OCI API 是否需要 C 编程?

我在看这里:

http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28395/toc.htm

但一切看起来都像 C 或 C++。我可以使用任何其他语言来使用 OCI 吗?

谢谢。

编辑:我需要对 LOB 对象(blob、clob 等)使用直接路径。我相信我必须使用 OCI 来做到这一点。

编辑:我的 OCI 假设基于此: Can a direct path insert into a LOB column?

0 投票
4 回答
3076 浏览

oracle-call-interface - 使用 OCI 批量插入

我目前正在使用 OCI 从 C++ 代码中将记录一个接一个地插入到表中。数据在结构的哈希映射中,我遍历映射的元素,将结构的属性绑定到表中记录的列(例如

定义插入查询 对记录的所有列使用 OCIBindByname( ) 迭代映射分配绑定变量作为结构 OCIStmtExecute 的属性 end

这很慢,所以我想通过批量插入来加快速度。有什么好方法可以做到这一点?我应该使用一个结构数组在一个 OCIStmtExecute 中插入所有记录吗?您是否有任何示例代码显示如何执行此操作?

0 投票
3 回答
1929 浏览

sql - to_date 函数出现 ORA-00911 错误

此请求按预期工作:

不幸的是,当我在最后添加时出现错误:

我正在使用网络界面,错误消息是:

警告:oci_execute() [function.oci-execute]:ORA-00911:第 117 行 /opt/csw/apache2/share/htdocs/DAE/sites/default/modules/data_repository/data_repository.inc 中的字符无效。

警告:oci_fetch_row() [function.oci-fetch-row]:ORA-24374:在/opt/csw/apache2/share/htdocs/DAE/sites/default/modules/daedatabase/中获取或执行和获取之前定义未完成daedatabase_db.inc 在第 852 行。

0 投票
0 回答
332 浏览

php - 奇怪的 ORA-01858 错误

查看我的 php 错误日志,我经常看到与特定存储过程相关的 ORA-01858 错误条目。根据我对这个错误代码的搜索,它总是将错误的输入传递给 TO_CHAR() 函数的结果。问题是,有问题的存储过程只有一个 TO_CHAR() 函数,而我传递的值实际上是硬编码的。(这是 NVL() 的第二个参数。代码如下:

由于这是此过程中 TO_DATE() 的唯一用途,为什么我会收到 ORA-01858 错误?还有其他一些情况可以产生这样的错误吗?部分问题是这种情况有时会发生。一般来说,使用这个存储过程的程序可以正常工作,我知道这一点的唯一原因是检查错误日志。

0 投票
2 回答
4025 浏览

jdbc - OCI JDBC 驱动程序和 NLS 设置

我们创建了一个“登录后”触发器来更改会话,以设置两个 NLS 设置 - NLS_SORT 和 NLS_COMP。NLS_SORT 需要设置为 BINARY_CI,NLS_COMP 需要设置为 LINGUISTIC。通过在建立连接后查询 V$NLS_PARAMETERS 视图来验证值,我看到 NLS_COMP 参数得到了更新,但 NLS_SORT 没有。

经过更多研究后,我意识到 OCI JDBC 驱动程序在建立连接后执行以下查询

由于 NLS_SORT 从 NLS_LANGUAGE 派生其值,因此 NLS_SORT 参数值重置为 BINARY 而不是 BINARY_CI。NLS_LANGUAGE 设置取自 Windows 注册表。

  1. oci jdbc 驱动程序是否执行这些查询以将客户端上的 NLS 设置与数据库服务器同步?

  2. 可以配置 jdbc oci 驱动程序以避免执行 alter session set NLS_LANGUAGE 查询吗?

我问第二个问题的原因是应用服务器(例如 glassfish、tomcat、jboss)机器(安装了 OCI 客户端)设置覆盖数据库服务器设置是没有意义的。

0 投票
1 回答
3098 浏览

php - CMD 中的 Php.exe 抛出“调用未定义函数 oci_connect()”

我在 Windows XP 中安装了带有 PHP 5.2.6 的 XAMPP。在我的 php.ini 中,我没有注释下一行:

  • 扩展=php_oracle.dll
  • 扩展=php_oci8.dll

我有一个类似这样的文件:

但是当我尝试通过 cmd 调用 php.exe 到该文件时,控制台总是给我一个错误:

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

在我的本地主机中,我对此没有任何问题。

0 投票
2 回答
553 浏览

c - 如何在 OCI 中获取 sql_id

有没有办法在调用后获取 sql_id/子编号/计划哈希OCIStmtExecute()OCIAttrGet()我在里面看不到

注意:作为一个看不到的普通用户v$session- 如果可以的话,它就像执行一样简单select prev_sql_id, prev_child_number from v$session where sid=sys_context('USERENV', 'SID')

谢谢!

0 投票
3 回答
3984 浏览

php - 在 PHP 中运行带有超时的 sql 查询或在 PHP 中如何运行以停止已经开始的 sql 查询?

我阅读了oci_cancel的文档,但在我看来有点模糊。

是否oci_cancel杀死服务器中的sql进程?

如果没有,我如何制作一个执行 sql 查询的脚本,等待片刻,如果查询超过 10 秒(例如),取消服务器中的查询?

请问这个问题是否与前段时间问的类似,但我没有找到满意的答案。

0 投票
1 回答
388 浏览

oracle - 如何getConnection oci资源?

我需要获取资源 oci(连接)。执行方法 oci_new_descriptor、save、oci_commit 和 close

代码:

错误- 适配器参数必须在数组或 Zend_Config 对象中。