Pro*c使用指示变量来处理NULL列值
来源:互联网 发布:软件咨询服务合同 编辑:程序博客网 时间:2024/04/29 11:52
代码:xx.pc
/* 功能:演示了Oracle使用指示变量(专门用来处理NULL值) 指示变量专门用于处理数据库的NULL值,它是一种short类型的C语言变量。当执行内嵌SELECT语句或FETCH语句时,如果不引用指示变量,并且返回值为NULL,那么会显示如下错误信息:ORA-01405: 读取的列值为NULL*/ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sqlca.h> #pragma comment(lib, "orasql10.lib") int connect(); void sql(); void sql_error(); void main() { EXEC SQL WHENEVER SQLERROR DO sql_error(); // 安装错误处理句柄 if(connect() == 0) { sql(); EXEC SQL COMMIT RELEASE; // 提交事务,断开连接 } else printf("连接失败\n"); } int connect() // connect to oracle database { char username[10], password[10], server[10]; strcpy(username, "scott"); strcpy(password, "scott"); strcpy(server, "orcl"); EXEC SQL CONNECT :username IDENTIFIED BY :password USING :server; if(sqlca.sqlcode == 0) return 0; else return sqlca.sqlcode; } void sql_error()// print error infomation{ printf("%.*s\n", sqlca.sqlerrm.sqlerrml, sqlca.sqlerrm.sqlerrmc);} void sql(){ int no;// 定义宿主变量 char name[10]; float commission;short comm_ind;// 定义指示变量while(1){printf("请输入雇员号(0: 退出):");scanf("%d", &no);if(no == 0)break; EXEC SQL Select ename, comm into :name, :commission:comm_ind from emp where empno=:no;if(sqlca.sqlcode == 0){if(comm_ind == 0)printf("雇员名:%s, 补助: %.2f\n", name, commission);elseprintf("雇员名:%s, 补助为NULL\n", name);}elseprintf("该雇员不存在\n");} printf("sqlca.sqlerrd[2] = %d\n", sqlca.sqlerrd[2]); // sqlca.sqlerrd[2]存放着Select语句作用的行数 }
- Pro*c使用指示变量来处理NULL列值
- pro*c宿主变量和指示变量
- [Pro*c]滚动游标变量的使用
- Pro*C中使用游标变量
- Atitit. null错误的设计 使用Optional来处理null
- proc*c 程序设计(二) 指示变量
- Pro*C的使用
- Pro * C 的使用
- Pro * C 的使用
- Pro*C的使用
- Pro*C的使用
- Pro*C的使用
- pro*c的使用
- pro*c的使用
- 关于oracle采用pivot函数列转行后一些列的值为null处理
- 在Makefile中可以使用函数来处理变量
- 使用COUNT函数处理NULL值
- pro*c 里 DATE 变量的故事
- tcp keepalive for unix
- Java中Object的方法
- 仓库
- 技术博客:第十三章 多线程
- 文件操作
- Pro*c使用指示变量来处理NULL列值
- 新课知识;
- 周二
- CSDN Java课堂随笔NO:2
- Active MQ使用
- Liferay:Struts2.X Portlet的实现
- 周三
- 手机开发网址
- CSDN Java课堂随笔NO:3