问题标签 [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 投票
2 回答
5412 浏览

c++ - Oracle OCI 数组获取简单数据类型?

我无法理解 Oracle 文档。:-(

有人知道如何通过 OCI 从 Oracle 获取多行简单数据吗?

我目前使用OCIDefineByPos定义单个变量(我只需要对简单的整数执行此操作 - /4 字节整数),然后使用/SQLT_INT一次获取一行。OCIStmtExecuteOCIStmtFetch2

这对于少量数据是可以的,但每行大约需要 0.5ms,所以当读取几万行时,这太慢了。

我只是不明白OCIBindArrayOfStruct. 如何一次获取几千行?

0 投票
3 回答
14755 浏览

php - 如何设置 OCI 以从 PHP 连接到 Oracle?

在最新的 Ubuntu 上,我有一个正常运行的 PHP 5.2.4 安装。我想使用 OCI 从 PHP 中使用远程 Oracle 服务器。

我已经下载了“Instant Client Package - Basic Lite”链接)。我已经将包含 OCI 库的包解压缩到一个目录,但我不知道如何告诉 PHP 我想使用这些库。可以预见的是,我得到

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

运行此代码时:

我不想用 Oracle 支持重新编译 PHP。连接 PHP 以便我可以使用 Oracle 的最快方法是什么?如果我想连接到远程 Oracle 实例,是否需要任何其他库,例如 Oracle 客户端?

0 投票
11 回答
255601 浏览

oracle - 如何找出上次更新 Oracle 表的时间

我能否查明对 Oracle 数据库中的表执行最后一次 INSERT、UPDATE 或 DELETE 语句的时间?如果可以,如何查明?

一点背景:Oracle 版本是 10g。我有一个定期运行的批处理应用程序,从单个 Oracle 表中读取数据并将其写入文件。如果自上次作业运行以来数据没有改变,我想跳过这个。

该应用程序是用 C++ 编写的,并通过 OCI 与 Oracle 通信。它以“普通”用户登录 Oracle,所以我不能使用任何特殊的管理工具。

编辑:好的,“特殊管理员的东西”并不是一个很好的描述。我的意思是:除了从表中选择和调用存储过程之外,我什么也做不了。如果想在 2010 年之前完成,那么更改数据库本身的任何内容(例如添加触发器)都不是一个选项。

0 投票
2 回答
2245 浏览

oracle - 使用 Oracle 调用接口 (OCI) 检测具有默认值的列

我正在优化消息传递系统中的定制数据库层以提高性能。

我正在使用 ORACLE OCI OCIDescribeAny 函数来获取有关数据库表中列的元数据。

如何使用 OCI 调用检查元数据以查看列是否设置了默认值(在其架构定义中)。

0 投票
2 回答
11782 浏览

c - OCI 连接字符串...需要帮助

有谁知道用于 oracle 10g C API 的函数 OCILogon() 中的 dbname 参数的 OCI 连接字符串?

我知道您可以为服务指定 tnsnames.ora 条目,但它是否能够采用以下内容: oci:connect:myserver.com:1521/myservicename ?

0 投票
2 回答
2829 浏览

oracle - 检测由 OCI OCIStmtExecute 调用更新的 ORACLE 行数

我有一个使用 OCIStmtExecute 函数调用的 ORACLE 更新语句。

使用 OCI 函数调用我想知道该操作已更新了多少行,例如零、一或更多。

我该怎么做呢 ?

0 投票
2 回答
5284 浏览

c - 如何从 OCI 调用 ORACLE 函数?

我可以在 C 程序中通过 OCI 调用 ORACLE 存储过程,方法是为命令构造 SQL 命令,这是我的代码中的一个简短片段:

但是,我如何构造一个调用(在我的 C 程序中)具有以下签名的 ORACLE 函数:

要在 PL/SQL 中调用该函数,我将使用例如:

如何构造 SQL 字符数组 (sql_stmt) 以在我的 C 程序中调用 ORACLE 函数?

0 投票
2 回答
6503 浏览

java - 尝试使用 OCI 连接到 Oracle 时 JVM 崩溃

我有三台机器设置如下:

  • CompA:运行 Oracle 服务器 10.2.0.3
  • CompB:运行 Oracle 服务器 10.2.0.4 和我的客户端代码
  • CompC:仅运行客户端代码

在 CompB 和 CompC 上的客户端代码上,使用 Thin 驱动程序连接到任一 Oracle DB 都可以完美运行。

我正在尝试使用 OCI 驱动程序从客户端代码连接到每个 Oracle DB

从在 jboss 中运行的 Java 类内部。这在 CompB 上工作得很好,但会导致运行 Jboss 的 JVM 每次在 CompC 上进行核心转储。

CompC 可以使用 Sql*Plus 和 jboss 试图引用的同一 tnsnames.ora 文件连接到两个 Oracle 服务器。

这是堆栈跟踪的一部分。它似乎每次都是一致的。

有谁知道这里出了什么问题?

更新:为澄清起见,上面使用的“客户端”指的是我在 jboss 实例中运行的 java 代码。应该在 jboss 启动的 LD_LIBRARY_PATH 中找到的唯一 Oracle 库是 libocijdbc10.so libclntsh.so.10.1 和 libnnz10.so。这三个库和 jboss 服务器本身都在源代码控制中,因此它们在 CompB 和 CompC 上是相同的版本。

CompB 可以使用 OCI 和 Thin 连接到 CompA 和 CompB。CompC 无法使用 OCI 连接,但可以使用 Thin 连接到 CompA 和 CompB,因此它不应该是服务器版本问题。

CompB 和 CompC 都运行 32 位 Ubuntu 8.04,但 CompC 的 CPU 稍慢,只有 1GB 的 RAM,而 CompB 的 RAM 为 3.25GB。

0 投票
1 回答
823 浏览

c++ - 什么是 OCCI 上下文和环境?

我正在探索使用 Oracle API 的软件,据我所知,对象方法通常期望作为参数“OCCI 上下文”或“OCCI 环境”值。

一个示例是 Account 对象的构造函数:

后来重载

我可以理解它们与某种“连接处理程序”有关,但我想知道更多。

我四处搜索,但找不到任何对我来说足够清楚的东西,似乎每个文档都是从您已经知道 Oracle API 的假设开始的。

谢谢。

0 投票
3 回答
6714 浏览

oracle - Oracle - OCI 查询超时

有什么方法可以设置 Oracle OCI 调用的超时时间(例如 OCIStmtExecute)?

谢谢