问题标签 [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 和 C++ 获取最后插入的行 ID
鉴于上面的代码,我如何获取插入数据库的行的 ID。我正在使用 C++ 和 oracle OCCI 接口:
感谢您的帮助。
c++ - OCCI C++ 应用程序未定义参考
我从这里开始,但发生了很大变化,我认为最好开始一个新问题,特别是因为我认为该问题中的 CMake 问题已经解决。
背景
我正在尝试设置一个项目的基本外壳,该项目涉及将 C++ 中间层连接到 Oracle 12c 数据库。
环境
1. MinGW-64 (x86_64-4.9.1-release-win32-sjlj-rt_v3-rev2)
2. Windows 7 64-bit
3. CLion 2016.1.1 (所以我用的是CMake 3.5.1)
4. All的 OCCI DLL 在 system32 中。
5.库和dll都在C:/Users/hurst/libs
CMakeLists.txt
代码
错误
有什么建议么?谢谢。
编辑
这里建议的是详细的错误输出:
编辑基于我在另一个 SO 答案
上所做的一些阅读,我分解了 target_link_libraries() 调用,以便每次调用一个库:
target_link_libraries(Oracle ${OCCI1}) target_link_libraries
(Oracle ${OCCI2}) target_link_libraries
(Oracle $ {OCCI3}) target_link_libraries
(Oracle ${OCCI4})
然后我尝试通过将 ${OCCI2} 向上/向下移动一个来运行它,看看它是否成功(即 1234、2134、1324、1342),因为 ${OCCI2} 是 OCI 库,它代表 Oracle 接口的基本 C API . 它没有工作,同样的错误。
c++ - VS2012 返回 Oracle unique_ptr 崩溃的向量
我确实有一个代码结构,我从数据库中读取 Oracle 行,然后将其分配给一个表示其数据的通用模型(称为commonmodel::Model
)。我在 Windows 7 上使用 VS2012。
我的问题是下面的这段代码,我在其中执行了一些语句,例如SELECT ...
我正在运行测试并且表是空的,所以没有数据从SELECT...
.from 数据库返回,因此里面的代码while (resultSet->next())
没有被调用。
我的程序可以编译,但它在运行时返回数据 ( return retData
) 时崩溃。我不知道是什么导致了这种行为,我想帮助解决它。
顺便说一句:我选择std::unique_ptr´s
为 Oracle 创建指针,以便在不需要任何模式时让编译器释放这些指针。在那之后,我不需要在操作结束时删除它们。
oracle - OCCI 与 SOLARIS 中的 GCC
我们正在尝试将 OCCI 与 GCC 一起使用。OCCI 是使用 sun studio 编译器编译的。是否有可能将 OCCI 与 GCC 一起使用而不是 sun 本机编译器 CC?
c++ - 在 std::string 或 char 数组中间使用 NULL char 更新
我们使用 Oracle 12c 数据库和带有 OCCI 的 CentOS7 进行连接。我们试图在数据库中插入一个 char 数组,但是这个 char 数组中间有一个 NUL 字符。当我们使用 statement->setString 函数时,更新是成功的,但是一旦它看到 NUL 字符,它只会将 NUL 字符放在那里。请参阅此示例代码及其输出。
使用 setString 的示例代码:
更新后访问数据库:
但是我本来希望它是
所以我尝试使用 oracle::occi::Bytes——这个错误
ORA - 12899: 列“MAIN_USER”.“MY_CUSTOMERS”.“FIRST_NAME”的值太大(实际:40,最大值:20)
使用 setBytes 的示例代码:
输出:
因此,我尝试通过将 oracle::occi::Bytes 构造函数的第二个参数更改为 10 来发送一半字节,但它成功了,但是在从数据库中读取值后,我意识到它是十六进制值的字符串表示形式字符。所以我此时的问题是,当我通过 oracle::occi:Bytes 时,为什么 Oracle12c 将十六进制值作为字符串。
使用一半实际长度和 setBytes 的示例代码:
更新后访问数据库:SELECT first_name FROM my_customers WHERE customer_id = 10;
注意:这个查询没有用 rawtohex 包装——这是数据库中实际的 char 数组值。
这是表定义:
以下是我们的 Oracle 实例信息:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64 位生产,具有分区、真正应用程序集群、自动存储管理、OLAP、高级分析和真正应用程序测试选项
我们正在使用 Oracle occi 客户端 12.1 64bit
environment-variables - ld 找不到 OCCI 库,即使它们存在于 LD_LIBRARY_PATH
我只是在做一些简单的 OCCI 事情,但是编译起来有点奇怪
环境:
- Oracle VM:Windows 8 64 位上的 Centos7 64 位
- gcc-c++.x86_64
- 只需双击 rpm 即可安装 Oracle XE(下载页面显示 linux 64bit)
echo $LD_LIBRARY_PATH 产生:
/usr/local/lib64/:/u01/app/oracle/product/11.2.0/xe/lib/
我也试过export LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/xe/lib/
让它产生
/u01/app/oracle/product/11.2.0/xe/lib/
一些列表命令:
find /u01/app/oracle/product/11.2.0/xe/lib/ -name lib*
产生以下结果:
但是编译命令说 ld 找不到一些库:
g++ -o ab -I/u01/app/oracle/product/11.2.0/xe/rdbms/public/ -lnnz11 -lclntsh -locci a.cpp
我已经尝试添加-L/u01/app/oracle/product/11.2.0/xe/lib/
,它成功编译但是运行程序会导致它在简单的行中静默崩溃/阻塞
Environment *env = Environment::createEnvironment();
没有发现异常。
有人知道我做错了什么吗?还是这两个问题相关?
顺便说一句,它曾经像 5 小时前一样工作,当它突然停止工作时,我重新安装了整个 VM,现在它仍然无法工作。
c++ - oracle occi ResultSet::next() 核心转储
嗨,我遇到了一个occi问题,我想从oracle获取区间值,但它是核心转储,为什么?
c++ - ORA-00947: not enough values when creating object in Oracle
I created a new TYPE in Oracle in order to have parity between my table and a local c++ object (I am using OCCI interface for C++).
In the code I use
The code compiles, connects to db but throws the following exception
Exception thrown for insertRow Error number: 947 ORA-00947: not enough values
Do I have a problematic "sqlStmt"? Is something wrong with the syntax or the binding?
Of course I have already setup an environment and connection
node.js - 为 node-mapnik 构建 occi 插件
我正在尝试为 node-mapnik 构建 occi 插件。我的目的是在 tilelive-bridge 节点模块的 node-mapnik 安装中使用该插件。
这是我首先做的:
这样做之后,我可以使用以下方法构建 postgis 插件:
生成的 postgis.input 文件在 plugins/input 目录中可用。
我克隆了 mapnik/non-core-plugins 存储库,将 occi 插件复制到 plugins/input 目录中,zip-installed oracle instantclient 11.2.0.4.0 版本(rpm 安装没有给我包含文件夹和/或 .h 文件),编辑 SConstruct 文件并将这一行添加到插件对象:
然后我编辑了 config.py 文件并添加了这些:
另外,我改变了这一行:
进入
然后我将这 3 行添加到 ~/.bashrc:
请注意,我使用的不是 10.2.0.3 版本,而是 11.2.0.4.0,我只是将文件夹命名为适合 SConstruct 中的默认文件夹(我也可以更改默认文件夹,但我不确定是默认文件夹,所以我保持原样)。
然后我输入:
并转到 mapnik 文件夹以运行构建:
它说:
但它没有说:
就像 github 中 mapnik 的 wiki 的 occi 页面所暗示的那样。
我得到的错误:
Tilelive-bridge 没有附带带有 occi 插件的 mapnik 安装,并且在它们删除 occi 支持之前的版本将无法编译。
你能告诉我我错过了什么吗?
感谢您提前提供的所有帮助
c++ - OCCI 应用程序中的无效指针错误
我正在使用本教程中的代码来试验 OCCI:
http://oradim.blogspot.com.br/2009/08/getting-started-with-occi-linux-version_16.html
当我尝试运行应用程序时,它给了我以下错误:
我正在使用 netbeans 编译的 ubuntu 机器上运行。编译是这样的:
调试后可以看到这里崩溃了(用户、密码和ip省略了,但是我用同一个用户和密码连接sqlplus),但是不知道为什么会崩溃: