Tag: oracle pro c

Pro * C查询IN子句中的多个动态值

我想读取一个平面文件来获取动态值列表(值的数量不固定)然后我想在Pro * C的select查询的IN子句中使用这个值列表。 使用Pro * C实现此目的的最佳方法是什么? 我在这里和这里看到了一些有用的文章,但我只是想检查一下我的用例是否有更合适的解决方案。 权衡我可能拥有的选项的利弊也是有用的。 举一个例子,以下是查询: SELECT ca.co_id INTO :host_co_id_1 FROM contr1 ch1, contr2 ca WHERE ch_seqno = (SELECT MAX (ch_seqno) FROM ontr1 ch2 WHERE ch1.co_id = ch2.co_id) and ch1.ch_status IN (‘a’,’s’) AND ca.co_id = ch1.co_id AND ca.tmcode IN (14,16,36,37,38,39,40,41,42,79,60); 号码列表: 14,16,36,37,38,39,40,41,42,79,60 是从文件中读取的动态列表。

如何在Pro * C查询中指定变量表达式列表?

我有一个Pro * C查询的问题,我正在尝试优化。 为了解释,我们的应用程序在一个巨大的数据库中搜索行。 这些行以多种语言存在,旧代码为数组中的每种语言选择一行。 现在因为这些查询是我们应用程序中最耗时的部分,所以我只想制作一个直接写入数组的查询。 语言代码是2个字母的ISO-639代码(en代表英语,fr代表法语)。 旧方式(这只是一个简化的代码来显示意图) struct ROW arr[MAX_LAN]; struct ROW_IND arr_ind[MAX_LAN]; uint_t LanIdx; for(LanIdx=0; LanIdx<MAX_LAN; LanIdx++) { EXEC SQL SELECT * /* Don't look at the *, it's for obfuscation only */ INTO :arr[LanIdx]:arr_ind[LanIdx] FROM table WHERE id=:uniqid AND language=:LanCode[LanIdx]; } 我想做这样的事情: EXEC SQL SELECT * /* Don’t look at the *, […]

如何在构建过程之后在cmake中编译其他源文件

我在cmake for windows中有一个项目,其中包含一个名为database.proc的Pro * C源文件,我的目标是从.proc文件生成一个C源文件,并将其添加到要与其他源文件链接的项目中,我试图添加一个自定义命令来实现这一点,但没有成功 add_custom_command(TARGET myproj OUTPUT PRE_LINK COMMAND ${PROC} iname=${PROJECT_SOURCE_DIR}/connection.proc SQLCHECK=SYNTAX MODE=ANSI IRECLEN=255 ORECLEN=255 ONAME=${PROJECT_SOURCE_DIR}/connection.c COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAGS} ${PROJECT_SOURCE_DIR}/connection.c ) 有办法做到这一点吗?

什么是pro * c?

这有用吗? 我们如何从数据库中访问数据?

适用于SIGSEGV / SIGABRT和朋友的Oracle Pro * C / OCI安装处理程序 – 为什么以及如何禁用?

当使用Pro * C(Oracle for C-Code的嵌入式SQL预处理器)或OCI时,我注意到connect / init例程安装了一些信号处理程序。 这意味着之前 EXEC SQL CONNECT :username IDENTIFIED BY :password USING :dbspec ; 或者a OCIEnvNlsCreate() 我可以validation,例如这些信号有以下处理程序: No NAME Pointer SA_SIGINFO SIG_DFL SIG_IGN ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― 1 SIGHUP (nil) false true false 2 SIGINT (nil) false true false 3 SIGQUIT (nil) false true false 4 SIGILL (nil) false true false 5 SIGTRAP (nil) […]