问题标签 [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 回答
732 浏览

c - OCIDate 在进入 Oracle 的过程中被破坏

我有一些 C 代码可以OCIDate从纪元时间填充一个:

在我的主程序中:

在图书馆:

我很确定这是正确的,因为我在调用例程中进行了检查:

我将它与以下内容绑定:

dbuf已定义)。这正是我所期望的。但是当它到达 Oracle 时,它​​是胡言乱语,导致一个无意义的日期(例如65-JULY-7896 52:69:0ORA-1858 或 ORA-1801)。有没有人见过这样的事情?谢谢!

0 投票
3 回答
8723 浏览

java - 使用带有 OCI 驱动程序的 OracleDataSource 获取过时的连接

当我的 java 应用程序几个小时没有对数据库的请求时,我收到过时的连接错误。

它是一个在带有 OCI(类型驱动程序)的 Linux 机器上运行的简单 Java 应用程序。不要问我为什么是OCI,为什么不瘦。我正在使用OracleDataSourceOracleConnectionCacheManager维护连接对象的缓存。这是代码片段:

错误如下:

我错过了什么?

0 投票
1 回答
113 浏览

c - 在 OCIAQDeq() 中使用 NULL 指针

在OCIAQDeq()的文档中,它指出:

应用程序可以选择在第一次调用 OCIAQDeq() 时为有效负载传递 NULL,并让 OCI 为有效负载分配内存。然后,它可以在后续调用 OCIAQDeq() 时使用指向先前分配的内存的指针。

有没有人有一个如何使用这个功能的例子?如果我传入NULL,我随后从哪里获得指针?谢谢!

0 投票
2 回答
6638 浏览

oracle - 使用 Oracle JDBC 驱动程序的 Spring XA 事务

我正在尝试使用 bitronix 事务管理器启用分布式事务。配置细节包括

  1. 使用 OCI JDBC 驱动程序和 oracle.jdbc.xa.client.OracleXADataSource。此数据源由 UCP 连接池数据源环绕 - oracle.ucp.jdbc.PoolDataSourceImpl
  2. 使用 spring JdbcTemplate 执行查询。
  3. 使用 Bitronix 事务管理器处理分布式事务
  4. 使用注解的 Spring 声明式事务

我面临的问题是使用 JDBCTemplate 执行的查询没有在事务中执行。我的测试用例使用 JDBCTemplate 执行两个查询,并且当方法在查询执行后引发运行时异常时,它们不会回滚。我还可以看到连接的自动提交状态设置为 true。

The data source is created as follows

关于查询未在事务中执行的原因的任何建议?

更新 1

添加使用 jdbcTemplate 执行查询并在最后引发异常的方法

更新 2

Oracle JDBC 开发人员指南提到

“在 Oracle Database 10g 之前的所有版本中,从 XAConnection 获得的连接的默认自动提交状态为 false。从 Oracle Database 10g 开始,默认状态为 true。”

我正在使用 Oracle 11g r2。知道在使用分布式事务将自动提交状态设置为 false 时应该进行哪些配置更改?

更新 3

如果我使用 bitronix 池数据源而不是 oracle ucp PoolDataSource,则这些事务有效。使用 bitronix PoolingDataSource 使 bitronix 有机会将自动提交状态设置为 false。将进行更多调查以找出两者之间的区别。

0 投票
1 回答
3943 浏览

php - 抑制预期 Oracle 异常的 PHP 警告

我有一个 PHP 函数,它调用一个 PL/SQL 包,它可以抛出一些我可以在 PHP 中捕获并采取行动的已知异常(即用户异常)。问题是,尽管在 PHP 中捕获了异常,但我在 PHP 日志文件中收到警告,其中包含来自 PL/SQL 异常的堆栈跟踪:

如何抑制这些 OCI 警告?我不想抑制所有警告,因为它们可能有助于解决其他问题,但是当它是我的 PL/SQL 的预期错误时,我不希望它填满我的日志文件。

0 投票
1 回答
529 浏览

c - 从 OCI 中的绑定名称获取绑定位置

使用OCIStmtPrepare()andOCIBindByName()时,有没有办法按名称进行绑定,然后将该绑定的位置作为intOCIStmtGetBindInfo()似乎没有这样做。谢谢!

0 投票
2 回答
5355 浏览

php - 使用 REMI 存储库在 rhel 6 上设置 oci8

我以前做过,但这是一个漫长的试错过程,导致我的测试机器有多个 php、oci8 和即时客户端副本,我仍然不确定我做了什么这行得通。

到目前为止,我已经设置yum使用 remi 存储库,完成yum install php php-oci8 php-pdo,并下载了 oracle 即时客户端并完成rpm -Uh oracle-instantclient11.2-basic-11.2.0.2.0.x86_64\ \(1\).rpm

但是,当我phpinfo()在页面上进行操作时,它仍然没有将 oci8 列为模块之一。

我认为错误与ORACLE_HOME环境变量有关,但我不确定它应该设置为什么。现在我有:

在 /etc/httpd/conf/httpd.conf

上次我得到这个工作时,我想我只是继续卸载 php 和 php-oci8 并重新安装,直到一切正常。

我的工作服务器的 ORACLE_HOME 设置如下: 工作服务器

但是新的不工作的有 ORACLE_HOME 在这里设置:

非工作服务器

如何设置Enviromentphpinfo() 部分中的 ORACLE_HOME?

0 投票
4 回答
5175 浏览

oracle10g - Oracle 真的提供任何 OCI 演示/示例程序吗?

Oracle,说有一些 OCI 的演示/示例程序。

就我而言,我想找到使用 OCIConnectionPoolCreate() 的示例。cdemocp.c根据文档, 应该有一个名为的文件:http: //download.oracle.com/docs/cd/B19306_01/appdev.102/b14250/ociabdem.htm

但它远不清楚我应该安装什么来获取这些文件?我希望我可以从 Oracle 自己的网站下载它们。似乎没有。上面的页面当然没有方便的链接。

我尝试过安装(在 Windows 上):

  • 一个 Oracle 10g XE 数据库服务器,没有这样的源文件
  • Oracle 客户端(sdk 选项开启),没有这样的源文件
  • 在我们的 linux 安装中搜索 - 我在哪里找到传说中的 \rdbms\demo\ 文件夹,其中包含一些引用演示源文件的 make 文件,但没有源文件。所以运行这些 makefile 失败。

基本上,没有运气找到它们。

如果我用谷歌搜索,cdemocp.c我只找到:

  • Oracle 自己的文档的典型多份副本
  • 其他人说他们找不到。

(我发现使用oracle的文档就像指环王,只是与现实的联系很微弱,而且可能太多的话。我不喜欢它。)

0 投票
1 回答
2742 浏览

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

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

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

Oracle 是否提供这些?

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

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

0 投票
1 回答
18446 浏览

php - PHP & Oracle - oci_connect() ORA-12705: 无法访问 NLS 数据文件

多年来,我们一直在我们的服务器上使用 Oracle,但 IT 部门的某个人昨天在没有明确警告的情况下删除了它,它真的把我们的系统扔了!

我已经按照 cwallenpoole 的建议采取了行动(谢谢!)并取得了良好的进展,PHP 现在至少包含了 oracle 函数(即 oci_connect),但我现在遇到了另一个错误消息:

警告:oci_connect() [function.oci-connect]: ORA-12705: 无法访问 NLS 数据文件或无效环境

我们已确保 tnsnames.ora 等文件位于正确的位置,但仍然没有乐趣 :(

谢谢你