问题标签 [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.

0 投票
1 回答
215 浏览

c++ - 如何调试occi使用Clion?

我使用 Clion 制作 occi 应用程序。我的 cmakelist.txt:

我的程序:

我的操作系统是 ubuntu 12.04 lts,Oracle 数据库的版本是 11g。我编译main.cpp文件使用这条命令“g++ main.cpp -o main.o -locci -lclntsh”,构建成功并运行成功。然后我使用Clion调试程序。程序在这行程序崩溃Environment* env = Environment::createEnvironment();是这些在我的 cmakelist.txt 中有一些错误?如何解决?

0 投票
0 回答
815 浏览

oracle - Oracle OTT 错误:“字符串索引超出范围 -11”

我正在尝试使用以下命令将类型转换为 c++ 对象:

这是 T_BODYIN.TPY 的内容:

这是 SQL TYPE 的内容:

我从 ott 收到消息“字符串索引超出范围 -11”,知道为什么吗?

PS:第一次用ot...

0 投票
0 回答
568 浏览

c++ - 确定 OCCI 中的 SQL 语句类型

我正在使用 Oracle C++ 调用接口 (OCCI) 为 Oracle 编写通用数据库处理层。它必须接受由应用程序的其他部分提供的 SQL 字符串(没有说明它是什么类型的语句),然后应该检查应用程序的调用部分是否允许该语句类型,如果是,代表执行它来电者的。

但是,我找不到一种有效的方法来从基于提供的 SQL 字符串创建的 OCCI 语句中获取 SQL 语句类型(选择、更新、删除等)。

在 OCI 中,可以通过调用OCIAttrGet()OCI 语句句柄并传递OCI_ATTR_STMT_TYPEattrtype参数来获取此信息,但我在 OCCI 中找不到任何等效函数。

可以通过调用从 OCCI 语句中获取 OCI 语句句柄getOCIStatement(),但到目前为止,从该 OCI 语句句柄中获取语句类型属性的尝试失败了:

当我运行上述内容时,我得到result = -2并且没有任何变化statementType

无论如何,我认为这种方法相当落后,并且更愿意与 OCCI 一起干净地操作。

有谁知道如何确定准备好的 OCCI 语句的 SQL 语句类型(缺少解析原始 sql 字符串,既不高效也不安全)?

0 投票
0 回答
192 浏览

c++ - 如何使用 C++ 和 OCCI 'execute' 方法读取 VARRAY?

我正在努力从 oracle 11g 数据库中读取 VARRAY 元素。我正在使用 CPP occi DLL。我可以读取任何其他类型,并更新 VARRAY 类型,但是当我尝试选择 VARRAY 值时,我在 occi dll 中得到一个“访问冲突”异常:(

这是一个简化的场景:

当我做

没关系,但是当我尝试以相同的方式访问 VARRAY

我明白了

OracleTester.exe 中 0x0094a46d 处的第一次机会异常:0xC0000005:访问冲突读取位置 0x0000000000000120。

知道我做错了什么吗?也许我需要使用不同的 API 来获取 VARRAY 数据?或者做一些准备工作?

任何提示将不胜感激...

0 投票
1 回答
214 浏览

c++ - 错误:在犰狳和 oracle occi 兼容性问题中对“剑”的引用不明确

在犰狳 c++ 中,我使用了一些 api 并使用 oracle occi 尝试将值插入到 oracle 表中,但是我得到了一些像这样的错误:-

我的示例代码是:- main.cpp

db_manager.cpp

db_manager.h

common_struct.h

全局变量.h

生成文件:

0 投票
2 回答
1230 浏览

c++ - 使用 oracle occi 和 c++ 将 1300 万行转储到文件中

我正在尝试将数据从数据库中的表导出到csv格式的文件中。我想出了下面的程序。我的表包含大约13 million行,这个程序很慢。

我怎样才能加快这个程序?

0 投票
1 回答
1085 浏览

static-linking - Oracle 12c中OCCI/OCI程序静态链接时的链接错误

我正在尝试开发静态链接的 OCi/OCCI 应用程序,但遇到了很多未定义的错误,如下所示。

有人可以告诉我链接行中要包含哪些 .a 库。

谢谢。

/u01/home/oracle/product/12.1.0.2/lib/libnls12.a(lxxmlidc.o):在函数lxXmlIdConv': lxxmlidc.c:(.text+0x15d): undefined reference tolxuCvtToCtx'lxxmlidc.c:(.text+0x23f):未定义引用lxu4TstClass' lxxmlidc.c:(.text+0x36f): undefined reference tolxu4TstClass'lxxmlidc.c:(。 text+0x386): 对lxu4TstClass' lxxmlidc.c:(.text+0x39d): undefined reference tolxu4TstClass 的未定义引用 lxxmlidc.c:(.text+0x3be): 对lxu4TstClass' /u01/home/oracle/product/12.1.0.2/lib/libnls12.a(lxxmlidc.o):lxxmlidc.c:(.text+0x7d4): more undefined references tolxu4TstClass 的未定义引用跟随 /u01/home/oracle/product/12.1.0.2/lib/libnls12.a(lxuca.o) :在函数lxucaFindLastNonCombiningChar': lxuca.c:(.text+0xc82): undefined reference tolxu4GCombiningClass'/u01/home/oracle/product/12.1.0.2/lib/libnls12.a(lxuca.o) 中:在函数lxucaFindTrimPosition': lxuca.c:(.text+0xfd6): undefined reference tolxuCvtToCtx'/u01/home/oracle/product/12.1.0.2/lib/libnls12 中。 a(lxuca.o): 在函数lxucaGetKey': lxuca.c:(text.hot+0xb2c): undefined reference tolxuComposition'lxuca.c:(text.hot+0xe06): 未定义的引用lxu4GCombiningClass' lxuca.c:(text.hot+0xeaa): undefined reference tolxu4GCombiningClass' lxuca.c:(text.hot+0x112b): 未定义的引用lxu4GCombiningClass' /u01/home/oracle/product/12.1.0.2/lib/libnls12.a(lxuca.o): In functionlxucaConvertAndDecompose': lxuca.c:(text.hot+0x181a): 未定义对lxuDecomposition' /u01/home/oracle/product/12.1.0.2/lib/libnls12.a(lxuca.o): In functionlxucaGetImplicitWeightBase'的引用': lxuca.c:(text.hot+0x1b16): 未定义对lxu4GBlock' /u01/home/oracle/product/12.1.0.2/lib/libnls12.a(lxpisac.o): In functionlxpIsACollat​​ionElement'的引用': lxpisac.c:(.text+0x2fc):对 lxpNumOfUc4Collat​​ionElem' 的未定义引用lxuCvtToCtx' /u01/home/oracle/product/12.1.0.2/lib/libnls12.a(lxpisac.o): In function:lxpisac.c:(.text+0x753):对lxuCvtToCtx' lxpisac.c:(.text+0x91a): undefined reference tolxuComposition'/u01/home/oracle/product/12.1.0.2/lib/libcore12.a(lrmini.o) 的未定义引用:在函数lrminiu': lrmini.c:(.text+0x5b6): undefined reference tolxuCvtToCtx' /u01/home/oracle/product/12.1.0.2/lib/libcore12.a(lrmpu.o):在函数lrmpu16to8': lrmpu.c:(text.unlikely+0x57): undefined reference tolxuStrLen'/u01/home/oracle/product/12.1.0.2/lib/libcore12.a(lsf.o ): 在函数lsfiniu': lsf.c:(.text+0x551): undefined reference tolxuCvtToCtx' /u01/home/oracle/product/12.1.0.2/lib/libcore12.a(lsfu.o) 中: 在函数lsfu16to8': lsfu.c:(text.unlikely+0x65): undefined reference tolxuStrLen' /u01/home/oracle/product/12.1.0.2/lib/libcore12 .a(lrmckv.o):在功能lrmckv': lrmckv.c:(.text+0x54f): undefined reference tolxuCmpBinStr' /u01/home/oracle/product/12.1.0.2/lib/libcore12.a(lrmpatk.o):在函数lrmpatk': lrmpatk.c:(text.unlikely+0x2f1): undefined reference tolxuCmpBinStr' /u01/home/oracle/product/12.1.0.2/lib/libcore12.a(lrmcvv .o): 在函数lrmcvv': lrmcvv.c:(.text+0x219): undefined reference tolxuCmpBinStr'

0 投票
0 回答
440 浏览

c++ - Oracle OCCI UString 到 std::wstring

在 Oracle DB 提供程序中,有一个术语 UString,用于处理 UTF16 字符集。

这是它的定义方式:

我的应用程序将 wstring 用于 unicode,并且我们知道 std::wstring 包装了 wchar_t,它不是无符号短,而是 C++ 的内部类型。我知道 VCproj C++ 语言设置中有一个选项是否使用 wchar_t 作为非内部类型,但我更喜欢将其保留为内部类型。

所以我的问题是如何将 OCCI 与 OCCIUTF16 一起使用,而不必将每个 UString 都转换为 wstring?

0 投票
2 回答
285 浏览

c++ - oracle occi 连接池报告 ORA-00001: 违反唯一约束 (%s.%s) 错误

我试过下面的代码

它报告了错误:在抛出'oracle :: occi :: SQLException'实例后调用终止what():ORA-00001:违反唯一约束(%s.%s)

我想这可能是因为我的笔记本电脑断电并异常关机。我该怎么做才能使它正确?

谢谢你。

0 投票
1 回答
893 浏览

c++ - 在 Oracle OCCI/OCI 中,读取 LOB 的缓冲区是否应该大于实际数据?获取 ORA-32116

std::vector我们正在通过 OCCI将数据从 CLOB 读入。简化的代码如下所示:

这会产生错误 ORA-32116,表示缓冲区大小(读​​取的第三个参数)应该等于或大于要读取的数据量(读取的第一个参数)。这个条件显然成立。

将缓冲区大小增加到 4*len 后:

操作正确执行。到目前为止, 和 的值have_read始终len相同。

缓冲区是否需要未记录的额外空间?还是需要完整的页面?

我们使用的是“Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit”。

欢迎对该主题进行任何澄清。