背景介绍
为了方便ORACLE数据库迁移到LightDB数据库,兼容Pro*C的语法规则。从LightDB24.1版本开始ECPG支持EXEC ORACLE OPTION语法。
LightDB ECPG官网
使用约束:
- RELEASE_CURSOR option是语法糖;
使用示例
- ecpg的源代码文件
#include <stdio.h>
#include <stdlib.h>
/*141434324324*/
EXEC ORACLE OPTION (RELEASE_cursor=NO ) ;
int main()
{
EXEC SQL BEGIN DECLARE SECTION;
char dbname[1024];
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO template1 AS main;
EXEC SQL SELECT current_database() INTO :dbname;
printf("current=%s\n", dbname);
EXEC SQL DISCONNECT;
}
- 编译ecpg
[lightdb@localhost ~]$ ecpg -o ecpg_test.c ecpg_test.pgc
[lightdb@localhost ~]$
[lightdb@localhost ~]$ gcc ecpg_test.c -lecpg -lpgtypes -o dostmt -I /home/lightdb/stage/lightdb-x/include/ -L/home/lightdb/stage/lightdb-x/lib
- 执行编译后的程序
[lightdb@localhost ~]$ ./dostmt
current=template1
[lightdb@localhost ~]$