proc动态插入操作
来源:互联网 发布:java内存泄露的原因 编辑:程序博客网 时间:2024/04/30 02:26
/*
*功能:proc动态插入操作
*源文件:dyn_insert.pc
*/
include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
/*#define SQLCA_NONE*/
EXEC SQL INCLUDE SQLCA;
EXEC SQL BEGIN DECLARE SECTION;
char db_name[25] = "dbname";
EXEC SQL END DECLARE SECTION;
void errorHandle(char *sm)
{
char buf[1024];
long bufLen,msgLen,fc;
sprintf(buf, "执行数据库操作(%s)失败, ORA ERROR:%.70s, SQLCA.SQLCODE=%d", sm, sqlca.sqlerrm.sqlerrmc, sqlca.sqlcode);
printf("%s/n", buf);
EXEC SQL WHENEVER SQLERROR CONTINUE;
EXEC SQL AT :db_name ROLLBACK WORK;
return;
}
void connect()
{
EXEC SQL BEGIN DECLARE SECTION;
char connString[25] = "nmc/nmc@atest_229";
EXEC SQL END DECLARE SECTION;
EXEC SQL WHENEVER SQLERROR DO errorHandle("Connect Database");
EXEC SQL AT :db_name CONNECT :connString;
}
void disconnect()
{
EXEC SQL WHENEVER SQLERROR DO errorHandle("Disconnect Database");
EXEC SQL AT :db_name COMMIT WORK RELEASE;
}
int main()
{
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR sql_string[1024];
int id;
EXEC SQL END DECLARE SECTION;
printf("Input the sys_int_id: ");
scanf("%d", &id);
connect();
EXEC SQL WHENEVER SQLERROR DO errorHandle("insert error");
//动态构造SQL语句
sql_string.len = sprintf((char *)sql_string.arr,"insert into objects_exs(sys_int_id) values(%d)", id);
EXEC SQL AT :db_name EXECUTE IMMEDIATE :sql_string;
//提交insert操作
EXEC SQL AT :db_name COMMIT WORK;
disconnect();
printf("insert successful/n");
return 0;
}
运行结果:
fj81db:/nmc/cdma_nmc/linlin/Proc$ insert
Input the sys_int_id: 142857
insert successful
- proc动态插入操作
- proc的动态游标操作
- PROC---动态SQL
- proc连接操作
- proc的select操作
- proc的insert操作
- proc的delete操作
- proc的update操作
- proc的游标操作
- proc相关操作
- proc文件系统操作实例
- proc文件系统相关操作
- proc 多线程操作oracle
- proc相关操作
- 107、proc/动态sql技术
- 动态链表的删除 插入 查找操作
- 堆的动态操作(插入、删除、调整)
- [数据库] 图解动态散列的插入操作
- proc调用存储过程
- Linux开机启动过程分析
- BerkeleyDB环境API
- 客户端与服务器会话跟踪的三种方法
- mysql乱码解决方案
- proc动态插入操作
- 飞信聊天记录备份到Gmail的软件
- proc的动态游标操作
- 努力吧,笨猪
- 梅花雪js树形控件MZTreeVew1.0/MZTreeVew2.0下载
- proc的makefile文件
- 人人好友生日提取
- 1-22
- a+++b