问题标签 [occi]
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++ - 如何使用 oracle::occi::Statement::setDataBuffer() 存储 64 位整数?
使用 OCCI(Oracle C++ 调用接口),我想setDataBuffer()
将 64 位整数值插入到具有 NUMBER(19) 列的 Oracle 表中。如果我将一个 64 位整数数组传递给 setDataBuffer() 并将数据大小设置为 64 位(8 字节),OCCI 仍然只使用 32 位。数据类型的文档没有 64 位整数的条目。有没有办法使用 插入这些大数字setDataBuffer()
?
c++ - 将 oracle 表动态导出到平面文件
我正在尝试使用 occi 库构建一个 C++ 程序,该程序将选择语句或表名作为输入并将其转换为分隔文件。但是,查看文档,我找不到将查询结果的所有列导出到文件中的方法。我发现的几乎所有示例都如下所示
我想要做的是:做一个select *
然后将整行导出到文件中而不指定每一列的类型,但我一直无法找到这样做的东西。
我知道逐行导出对于大型集合并不是很有效,但我想在优化它之前完成这项工作。
有没有人对如何有效地做到这一点有任何想法?
c++ - OCCI - setDataBuffer + 向量
尝试通过将包含 char 缓冲区的结构存储到向量中来最小化 OCCI 数组获取的行数,代码如下:
现在由于某种原因,这不起作用。但是,如果我不使用 col.buffer,而是创建一个 char buffer[1000][300] 并将其放入 setDataBuffer 中,然后在 cout 部分执行: cout << buffer[j] << endl;
效果很好。所以我不确定我在哪里搞砸了?
char 缓冲区与 col.buffer 完全相同,不是吗?
我认为这并不重要,但 struct Columns 是在头文件中定义的。
oracle - 使用 setdatabuffer() 获取数组时如何获取所有行
我被阻止了如何获取所有行的问题,即使用 setdatabuffer() 获取数组时的最后一行。在名为 example 的表中有 80405 行。OcciResultSet resultSet = occi.executeQuery("select x, y from example");
只能获取前 80000 行。剩下最后 405 行,如何获取最后 405 行。提前致谢。
sql - 使用 OCCI 删除时永远运行
同一行:
在 SQL Developer 上运行正常,使用 occi API 时需要永远。
我检查了查询“SELECT * FROM tablename WHERE id=12”是否匹配非空的行集。
更具体地说,我使用以下语法:
c++ - 在关闭 Occi::Connection 之前复制 Occi::ResultSet
我正在使用 OCCI 和 C++ 从 Oracle 获取数据。该代码运行良好,但我注意到性能有所下降。发生这种情况是因为在 rset->next() 迭代中,一些计算需要时间。这个延迟的影响是oracle连接池有一个连接忙。如果并发请求需要相同的计算,则池中的可能所有连接都将是 BUSY。
所以我的问题是:我可以复制 Occi::ResultSet (使用共享指针吗?)以便在复制后关闭连接并在释放连接后进行计算?
GitHub上有任何可用的示例吗?
c++ - 将 c++ 程序与 Oracle 连接
我正在尝试将我的 C++ 程序连接到 Oracle 数据库(12.2)。
我的 C++ 程序是(我在 ubuntu 中使用 g++ 编译器),
我收到错误
我是数据库连接的新手。你能帮我解决这个问题吗?
c++ - 获取 Clob 对象的大小
我正在尝试使用 OCCI 从 C++ 代码调用存储过程。存储过程具有以下签名:
创建或替换 PROCEDURE "MYTESTPROC" (param1 OUT NUMBER, param2 OUT int, param3 OUT smallint, param4 OUT int, param5 OUT RAW, param6 OUT int, param7 IN OUT CLOB)
我正在使用的代码如下:
问题是clob(len)的长度设置为0。指向流对象的指针不为NULL,并且clob被初始化并打开。
请告知我是否做错了什么。
谢谢!
oracle - 如何在 OCCI 中使用直接路径?
从 OCCI 文档https://docs.oracle.com/database/121/LNCPP/toc.htm中,我找不到使用 DirectPath 的明显 API,我是否需要直接在 OCCI 应用程序中调用 OCI api?
c++ - OCCI 链接:未定义的符号
我一直在使用 Oracle 数据库访问和 C/C++ 解决方案。我正在使用 OCCI,但我们无法在 Solaris 11 中进行链接。解决方案在 Linux(OpenSUSE 和 Mint)中“像魅力一样”工作,但在 Solaris 11 中却没有。
这里环境信息:
- 我下载了 instantclient_11_2(sun sparc 版本)并将其解压到 Solaris 文件夹中
我创建了指向 libclntsh.so.11.1 的符号链接,名为 libclntsh.so,并为 libocci.so.11.1 创建了名为 libocci.so 的符号链接。波纹管显示文件的“ls -l”:
- -rwxrwxr-x 1 f780333 desenv 23792 2013 年 8 月 22 日 adrci
- -rw-rw-r-- 1 f780333 desenv 414 2013 年 8 月 22 日 BASIC_README
- -rwxrwxr-x 1 f780333 desenv 41464 2013 年 8 月 22 日
- lrwxrwxrwx 1 f780333 desenv 17 Apr 5 14:21 libclntsh.so -> libclntsh.so.11.1
- -rwxrwxr-x 1 f780333 desenv 50268448 2013 年 8 月 22 日libclntsh.so.11.1
- -r-xr-xr-x 1 f780333 desenv 8653320 2013 年 8 月 22 日 libnnz11.so
- lrwxrwxrwx 1 f780333 desenv 15 Apr 5 14:22 libocci.so -> libocci.so.11.1
- -rwxrwxr-x 1 f780333 desenv 1545008 2013 年 8 月 22 日libocci.so.11.1
- -rwxrwxr-x 1 f780333 desenv 118735824 2013 年 8 月 22 日 libociei.so
- -r-xr-xr-x 1 f780333 desenv 121800 2013 年 8 月 22 日 libocijdbc11.so
- -r--r--r-- 1 f780333 desenv 2091135 2013 年 8 月 22 日 ojdbc5.jar
- -r--r--r-- 1 f780333 desenv 2739616 2013 年 8 月 22 日 ojdbc6.jar
- drwxrwxr-x 4 f780333 desenv 7 2013 年 8 月 22 日 sdk
- -rwxrwxr-x 1 f780333 desenv 177680 2013 年 8 月 22 日 uidrvci
- -rw-rw-r-- 1 f780333 desenv 66779 2013 年 8 月 22 日 xstreams.jar
我创建了另一个文件夹,其中包含指向来自 Solaris 的重要需求库的符号链接。我正在使用选项 -m64 -lCstd -lrt -lsocket 链接项目。m64 强制 64 位,这是必要的。Cstd、rt 和 socket,因为这些库是间接使用的。
我正在使用 Netbeans 并在 Solaris 11 中远程编译
编译工作正常。编译命令模式如下所示:
g++ -m64 -c -g -I/home/f780333/paineldaemon/lib/indra_clib/include -I/home/f780333/paineldaemon/lib/instantclient_11_2/sdk/include -std=c++98 -MMD -MP -MF “构建/调试/GNU-Solaris-Sparc/main.od”-o 构建/调试/GNU-Solaris-Sparc/main.o main.cpp
/home/f780333/paineldaemon/lib/indra_clib/include是一个文件夹,其中包含程序使用的静态库。这个库是我的,是项目所必需的。
/home/f780333/paineldaemon/lib/instantclient_11_2/sdk/include是来自instantclient sdk 的文件夹,其中包括来自OCCI 的*.h。
但是当联动过程开始时,所有的头痛也开始了:
(一)联动命令:
最后是链接器ERROR MESSAGE:
我对这个问题很着迷,任何帮助都会非常感激。