请高手帮俺解答下面的20行代码为什么在pro*c中编译不通过.(俺想试验一下在pro*c中嵌入pl/sql块).请大家帮忙!!#include "sqlca.h"
#define SQLSUCCESS 0
#define SQLCODE sqlca.sqlcode
EXEC SQL DECLARE DB_NAME DATABASE;
int TestA ()
{
EXEC SQL BEGIN DECLARE SECTION;
short iTmp;
EXEC SQL END DECLARE SECTION;
EXEC SQL WHENEVER SQLERROR GOTO sql_error;
EXEC SQL EXECUTE
BEGIN
iTmp:=15;
END;
END_EXEC;
return SQLSUCCESS;
sql_error:
EXEC SQL WHENEVER SQLERROR CONTINUE;
return SQLCODE;
}
#define SQLSUCCESS 0
#define SQLCODE sqlca.sqlcode
EXEC SQL DECLARE DB_NAME DATABASE;
int TestA ()
{
EXEC SQL BEGIN DECLARE SECTION;
short iTmp;
EXEC SQL END DECLARE SECTION;
EXEC SQL WHENEVER SQLERROR GOTO sql_error;
EXEC SQL EXECUTE
BEGIN
iTmp:=15;
END;
END_EXEC;
return SQLSUCCESS;
sql_error:
EXEC SQL WHENEVER SQLERROR CONTINUE;
return SQLCODE;
}
解决方案 »
- 用plsql导出如何导出储存过程,视图,序列等
- 在线等。。。。java中jdbc插入时将String转换成CLOB
- 泰文的操作!!!(急等!)
- 一个日期型的字段。start_time,要如何查数据
- GET_COLUMN_VALUE 和 ROWNUM < 400 什么意思 ?
- 本人初学者,请您帮助我解释下这段代码的含义好吗?
- 关于数据转出的问题。
- 我这样写对吗?
- proc中ROLLBACK WORK RELEASE和ROLLBACK RELEASE有何异同?
- 谁能给我一个win2000下oracle817的性能优化方案,100分送上
- 如何让Oracle启动时自动加载自定义的初始化参数配置文件?
- 可以在oracle中定义不带参数的存储过程和函数吗? 以及pack中关于变量如何共享问题??
iTmp:=15; 不是PL/SQL,是C的语法:iTmp = 15。具体报什么错,把编译的错误信息贴上来。
你说的那个语句,即使用iTmp = 15也不行,还是编译不通过.
出现的错误信息相同,如下:
row 20,column 2 发生致命错误.文件 D:\enhaku\test.pc
}
.1
PCC-S-02022, sql语句中发现文件终了。
row 0,column 0 处发生错误.文件 D:\enhaku\test.pc(就是这20行代码的程序)
PCC-F-02102, C preprocess处理过程中发生致命错误。
这个问题已经困扰我好几天了,为什么~~~~~~~~~~~!!!!!!!!!!!???????????????
哪位神仙来就我!!!!!!!!!!!!!!!!!!!!!
BEGIN
iTmp:=15;
END;
END_EXEC;
改为:
EXEC SQL EXECUTE
DECLARE
iTmp int;
BEGIN
iTmp:=15;
END;
END-EXEC;
#include "sqlca.h"
换成
exec sql include sqlca;
试一下
把你的编译过程说一下
在编译环境菜单中选的是:defualt output file name c++(大概是这样写的英语);
在 edit(菜单)->option中,我只把code(标题)中的code选项由默认的ANSI_C改成了CPP,其他的都是默认值;
再就是吧输出文件名的后缀由c改成了cpp.
就这些.编译不出来.pro*c的编译信息其烂,直接叫人摸不着头脑.:(
如果是win2000,具体在 编辑-->选项--〉sql检查 里面设置
如果是win2000,具体在 编辑-->选项--〉sql检查 里面设置
在unix/linux下是这样编译的。windows下我没有嵌入过pl/sql。
你把相应的参数改一下,看看行不行。
我现在的环境是 win nt 4.0 sp5 Oracle 8.1.6 pro*c 8.1.6
或许是不是我的系统有问题???
这样吧,大家谁能给我一个经过验证能够编译通过并且能够正确执行的,pro*c中嵌入 pl/sql语句的简单例子?
Name Null? Type
----------------------------------------- -------- ----------------------------
OLD
SQL> select * from sgj;no rows selected/*test.pc */
exec sql include sqlca;
int main()
{
exec sql begin declare section;
char user[10];
char pwd[10];
exec sql end declare section;
strcpy(user,"ych");
strcpy(pwd,"ych");
exec sql connect :user identified by :pwd;
exec sql execute
begin
insert into sgj values('22');
end;
end-exec;
exec sql commit release;
printf("ok!\n");
exit(0);
}
$proc SQLCHECK=FULL
USERID=sgj/sgj test.pc
$gcc -L/export/home/OraHome/lib/ -lclntsh test.c
$./a.out
ok!
SQL> select * from sgj; OLD
----------
22