问题标签 [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.
c++ - 使用 OCILIB 调用带有输出变量的 Oracle 过程
我有一个带有以下签名的程序:
当我使用 OCILIB 运行它时,我无法获得正确的 oCount 值。如果我将其注册为整数(使用 OCI_RegisterInt),则会收到错误消息:
ORA-03116: 传递给转换例程的缓冲区长度无效
如果我将它注册为字符串,它会运行,但 OCI_GetString 返回一个空指针,而 OCI_GetInt 返回 0(而不是预期的结果 1)。
测试代码为:
例如,使用 PL/SQL Developer 运行该过程可以正常工作。
这是使用 OCILIB 调用程序的正确方法吗?
另请注意,我使用的是库的混合版本。
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?
oracle-call-interface - 使用 OCI 批量插入
我目前正在使用 OCI 从 C++ 代码中将记录一个接一个地插入到表中。数据在结构的哈希映射中,我遍历映射的元素,将结构的属性绑定到表中记录的列(例如
定义插入查询 对记录的所有列使用 OCIBindByname( ) 迭代映射分配绑定变量作为结构 OCIStmtExecute 的属性 end
这很慢,所以我想通过批量插入来加快速度。有什么好方法可以做到这一点?我应该使用一个结构数组在一个 OCIStmtExecute 中插入所有记录吗?您是否有任何示例代码显示如何执行此操作?
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 行。
php - 奇怪的 ORA-01858 错误
查看我的 php 错误日志,我经常看到与特定存储过程相关的 ORA-01858 错误条目。根据我对这个错误代码的搜索,它总是将错误的输入传递给 TO_CHAR() 函数的结果。问题是,有问题的存储过程只有一个 TO_CHAR() 函数,而我传递的值实际上是硬编码的。(这是 NVL() 的第二个参数。代码如下:
由于这是此过程中 TO_DATE() 的唯一用途,为什么我会收到 ORA-01858 错误?还有其他一些情况可以产生这样的错误吗?部分问题是这种情况有时会发生。一般来说,使用这个存储过程的程序可以正常工作,我知道这一点的唯一原因是检查错误日志。
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 注册表。
oci jdbc 驱动程序是否执行这些查询以将客户端上的 NLS 设置与数据库服务器同步?
可以配置 jdbc oci 驱动程序以避免执行 alter session set NLS_LANGUAGE 查询吗?
我问第二个问题的原因是应用服务器(例如 glassfish、tomcat、jboss)机器(安装了 OCI 客户端)设置覆盖数据库服务器设置是没有意义的。
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()
在我的本地主机中,我对此没有任何问题。
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')
谢谢!
php - 在 PHP 中运行带有超时的 sql 查询或在 PHP 中如何运行以停止已经开始的 sql 查询?
我阅读了oci_cancel的文档,但在我看来有点模糊。
是否oci_cancel
杀死服务器中的sql进程?
如果没有,我如何制作一个执行 sql 查询的脚本,等待片刻,如果查询超过 10 秒(例如),取消服务器中的查询?
请问这个问题是否与前段时间问的类似,但我没有找到满意的答案。
oracle - 如何getConnection oci资源?
我需要获取资源 oci(连接)。执行方法 oci_new_descriptor、save、oci_commit 和 close
代码:
错误- 适配器参数必须在数组或 Zend_Config 对象中。