今天编译PROC程序时,遇到这个错误。最后发现原因是.pc文件里声明变量块时,不识别结构体。

今天时间紧知识用第一种方法暂时解决了。晚上抽时间用第二种方法优化一下代码。

查了很多资料,发现只有这个答案可以解决我的问题。

感谢:http://blog.sina.com.cn/s/blog_9a4d43d801019po6.html

当.pc文件中使用结构体里,经常会报错,不识别结构体。

针对这个问题,暂时找到两种解决方法
1、在.pc文件中包含定义结构体的头文件,但是包含绝对路径,如:
EXEC SQL BEGIN DECLARE SECTION;
#include "/home/esurfing_greenet/province_ubas/include/db_oper.h"
EXEC SQL END DECLARE SECTION;
这种方式不利于维护,当程序路径更改时,需要修改源代码
 
2、在.pc文件中包含定义结构体的头文件,不包含绝对路径,但是在makefile中包含头文件路径,如:
EXEC SQL BEGIN DECLARE SECTION;
EXEC SQL include "db_oper.h"
EXEC SQL END DECLARE SECTION;
 
makefile中修改如下:
%.cpp : %.pc
        proc include ./include iname=$< oname=$@ sqlcheck=full  threads=yes userid=$(USERID) code=cpp 

PCC-S-02201, Encountered the symbol "DB_USER_OPER_COUNT"的更多相关文章

  1. exception PLS-00103: Encountered the symbol "(" when expecting one of the following:

      exception PLS-00103: Encountered the symbol "(" when expecting one of the following: Cre ...

  2. angular-cli项目报Error encountered resolving symbol values statically. Function calls are not supported.错误的处理。

    安装同事打包的一个模块,报了这么个错,不过在其他地方使用是正常的. Error encountered resolving symbol values statically. Function cal ...

  3. PLSQL碰到pls-00103的错误解决办法

    CREATE OR REPLACE PACKAGE PKG_SHOW_CUST_DETAILS AS PROCEDURE SHOW_CUST_DETAILS( myArg VARCHAR2);END ...

  4. oracle 学习摘录

    (1)oracle插入回车换行符 SQL>insert into A t(t.name) values('aaaaa'||chr(10)||chr(13)||'ccccc'); 已创建 1 行. ...

  5. [转]Oracle 10g及pro*c相关问题及解决方法(转)

    Oracle 10g及pro*c相关问题及解决方法 2008年08月21日 星期四 上午 11:21 最近一直在进行ORACLE 10g和PRO*C的学习. 其中遇到了不少的问题: 现列于此,已备他用 ...

  6. [oracle]一个最简单的oracle存储过程"proc_helloworld"

    1.编写.编写一个最最简单的存储过程,给它起个名字叫做proc_helloworldCREATE OR REPLACE PROCEDURE proc_helloworldISBEGIN   DBMS_ ...

  7. PL/SQL中如何执行DDL、SCL?

    PL/SQL程序中不能直接执行DDL语句.为什么? 假设我们在pl/sql程序中有这样的一条DDL语句—— drop table emp:在第一次解析pl/sql中的“drop table emp;” ...

  8. oracle的存储过程语法(转)

    1.ORA-00942: table or view does not exist 指的你要操作的表尚未存在,需要先create出来先. 2.ORA-00922: missing or invalid ...

  9. Oracle12c中功能及性能新特点之with子句的增强

    1. 设置创建测试表.DROP TABLE test PURGE; CREATE TABLE test ASSELECT 1 AS idFROM   dualCONNECT BY level < ...

随机推荐

  1. castle windsor学习-------Container Events 容器的事件

    所有的事件是实现IKernelEvents 接口,已容器的Kernel属性暴露出来 1. AddedAsChildKernel 当前的容器添加子容器或其他容器时触发 2. RemovedAsChild ...

  2. 大话设计模式--桥接模式 Bridge -- C++实现实例

    1. 桥接模式: 将抽象部分与它的实现部分分离,使它们都可以独立的变化. 分离是指 抽象类和它的派生类用来实现自己的对象分离. 实现系统可以有多角度分类,每一种分类都有可能变化,那么把这种多角度分离出 ...

  3. LUA学习之一 初次接触

    对于一个开源工程,开始学习它的第一步自然是编译工程. 使用vc编译lua,在网上已有许多介绍,但“纸上得来终觉浅”,自己走一遍还是有必要的. 步骤如下: 1.下载源代码,从lua.org下载最新源代码 ...

  4. 用eclipse写xml文件

    1. 2.把写好的xml文件粘贴到src文件夹中.

  5. node路由访问,中间件返回数据

    node路由访问,中间件返回数据 定义一个变量存放json数据,中间件接受数据 var responseData; router.use(function(req, res, next) { resp ...

  6. 菜单栏(QMenuBar)与菜单(QMenu)

    之前一直搞不清楚什么是菜单栏,后来看了文档才知道是怎么一回事,下面是我本人对菜单栏和菜单的理解,可能存在理解错误. 一.菜单栏 菜单栏是容纳菜单的一个容器,里面可以存放菜单列表,用菜单栏的目的就是为了 ...

  7. ACM学习历程—HDU 5512 Pagodas(数学)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5512 学习菊苣的博客,只粘链接,不粘题目描述了. 题目大意就是给了初始的集合{a, b},然后取集合里 ...

  8. 51nod 1686 第K大区间2

    1685 第K大区间2 定义一个区间的值为其众数出现的次数.现给出n个数,求将所有区间的值排序后,第K大的值为多少. 众数(统计学/数学名词)_百度百科 Input 第一行两个数n和k(1<=n ...

  9. DEBUG命令说明

    Debug在学习汇编的过程中,担任着一个非常重要的角色,是一个极其重要的调试工具,所以学会它是必须得. 命令格式 功能说明 A [地址] 输入汇编指令 C [范围] 起始地址 对由“范围”指定的区域与 ...

  10. UML Design Via Visual Studio-Class Diagram

    用过几个建模设计工具,小的有staruml,大的有rational rose,EA.最后发现还是Visual Studio建模比较舒服(个人观点,不要争论). 打算对自己经常用的几个建模图做一个介绍, ...