问题标签 [oracle-pro-c]

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 投票
7 回答
6271 浏览

c - 如何让 Pro*C 应对 #warning 指令?

当我尝试预编译包含 #warning 指令的 *.pc 文件时,我收到以下错误:

PCC-S-02014,在预期以下情况之一时遇到符号“警告”:(bla bla bla)。

如果 Pro*C 不知道如何处理它,我能以某种方式说服 Pro*C 忽略它吗?我无法删除该#warning指令,因为它用于我无法更改且必须包含的头文件中。

0 投票
4 回答
462 浏览

oracle - Pro*C 可以与 MSVC 6 一起使用吗?

如何让 Pro*c 在 MSVC 6 中工作?

换句话说,将 .pc 文件编译成 .cpp 文件。

0 投票
1 回答
3226 浏览

c++ - 如何调试 .pc 文件?

我正在使用 emacs + gdb 在 unix 中调试一堆 .c 文件——而且它总是运行良好。但我从事的一些项目也有一堆 .pc (Pro*C/C++) 文件。这些文件在编译后会生成 .c 和 .i 相关文件。但是在运行时,我只能看到 gdb 中的 .i 文件——这些文件对调试没有用,而且总是不同步。换句话说,gdb 不会加载我需要的 .c 文件。

与我一起工作的一个人建议在另一个编辑器中打开 .c 文件,并尝试找到 gdb 显示的与 .i 文件一样的行的来源。

还有其他方法吗?如何在 gdb 中加载 .c 文件?如何调试这个 .pc 文件?

0 投票
8 回答
25787 浏览

oracle - ORACLE 10.2 Pro*C 预编译器不读取头文件

我正在使用 Oracle 10.2 和 AIX 5.2 预编译包含 Pro*C 代码的 C 程序

Oracle 预编译器读取$ORACLE_HOME/precomp/admin/pcscfg.cfg file包含 sys_include 变量定义的 (设置为/usr/include)。

Pro*C 编译器抱怨它不知道size_t类型是什么,并且使用该类型的 Oracle 头文件size_t正在报告错误。

这是文件上报告的示例错误sqlcpr.h

size_tstdio.h在目录的头文件中定义/usr/include。在包含标题之前,我将标题包含stdio.h在我的文件中。example.pcsqlcpr.h

我发出 proc 命令如下:

任何想法我做错了什么?

0 投票
1 回答
278 浏览

c++ - 如何在 Pro*C 中保持较低的实施/维护成本?

经历了 Oracle Pro*C 的可怕之处,在处理动态指定的列以及批量操作(ANSI METHOD 4)的需要时,我只想问:

您可以分享哪些想法/技术可以更轻松地开发/测试/调试/维护使用 Pro C 或 Pro C++ 的 C 和 C++ CRUD 应用程序?我对 Pro*C 方面特别感兴趣。

0 投票
1 回答
172 浏览

c++ - 是否有任何工具可以在 Pro*C++ 源代码上进行圈计算?

是否有任何工具能够对 Pro*C++ 源代码进行代码度量?

我无法通过谷歌找到任何具体的东西。

有人对这个有经验么?

0 投票
3 回答
1592 浏览

oracle - Oracle Pro*C ORA-12547

我正在重新编译一些我公司目前没有人编译过的 Pro*C 代码。它编译正常,但是当我将它复制到生产服务器并运行它时,我收到 Oracle 错误 ORA-12547(TNS:失去联系)

有任何想法吗?

0 投票
3 回答
1359 浏览

c - Informix 到 Oracle:处理获取空值

先说一点背景。我的公司正在评估是否将我们的 Informix 数据库迁移到 Oracle 10g。我们有几个 ESQL/C 程序。我已经通过 Oracle 迁移工作台运行了一些,并且一直在通过一些测试感到困惑。现在我开始意识到一些事情。

首先,我们有根本不处理空值的动态 sql 语句。根据我的阅读,我要么必须手动修改查询以利用 nvl() 函数,要么实现指标变量。有人可以确认是否需要手动修改?我们必须对转换后的 ESQL/C 程序进行的手动更改越少越好。

其次,我们有几个从各种表等中提取日期的查询,并且在 Informix 中,日期被视为 long 类型,即自 1899 年 12 月 31 日以来的天数。

在 Pro*C 中,日期被选择为什么格式?我知道这不是数字,因为我尝试在我的长变量中选择日期字段并得到 Oracle 错误,指出“预期为 NUMBER,但得到了一个日期”。所以我假设我们必须修改我们选择日期字段的方式 - 要么以转换的方式选择一个日期字段,使其变得很长(即,自 1899 年 12 月 31 日以来的天数),要么更改主机变量以匹配 Oracle 返回的内容(那是什么,字符串?)。

0 投票
1 回答
287 浏览

c++ - Oracle 7 ProC++ 预编译代码

我正在修改一个使用 Oracle 7 ProC++ 预编译代码 (SQLLIB18.LIB) 的旧 DLL,并且没有此版本的任何文档。甲骨文也不高兴。

有谁知道以下编译单元数据中的数字代表什么?

0 投票
4 回答
812 浏览

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

我正在尝试优化的 Pro*C 查询有问题。

解释一下,我们的应用程序在一个巨大的数据库中搜索行。这些行以多种语言存在,旧代码为数组中的每种语言选择了一行。现在,由于这些查询是我们应用程序中最耗时的部分,我只想进行一个直接写入数组的查询。

语言代码是 2 个字母的 ISO-639 代码(en 表示英语,fr 表示法语)。

老办法(这只是一个简化的代码来表明意图)

我想做这样的事情:

但不知道我应该如何定义 LanCodes。

它适用于像这样的常量(编译时间)列表

但这没有用,因为语言可能因情况而异。

如果我写类似

它仅在字符串中有 1 种语言代码时才有效。

所以我的问题是,有人知道如何进行这项工作吗?Oracle 文档太大了,我不知道在哪里看。我尝试了不同的方法,但没有一个奏效。

编辑 好的,我找到了一个可行的解决方案。它不优雅,不高级,但效果很好。我在查询中放了一个 OR 子句列表,它以我需要的形式返回我需要的内容。

当有超过 2 种语言时它会更快,所以我根据要获取的语言数量调用这个变体或旧的变体。