PROC 主要内容: 1) proc简介 2) proc程序的开发过程 3) 宿主变量和指示变量 4) 嵌入sql语句 5) 连接数据库 6) 错误处理 7) 数据的存取更新操作 8) 动态sql ----------------------------- 1.什么是pro程序? 1.1 概念 在过程化的编程语言中嵌入sql语句而开发出的应用程序,叫pro程序。 在通用的编程语言中嵌入的sql语句称为嵌入式sql 被嵌入了sql语句的编程语言称为宿主语言 1.2 proc/c++ 在c/c++语言中嵌入sql语句而开发出的应用程序,称为proc/c++程序 目的:是C/C++这种高效的语言成为访问oracle数据库的工具 2. proc中嵌入的sql语句 #include ..... ... /* 包含一个名为sqlca的结构 */ exec sql include sqlca; 变量的声明 函数的声明 int main(void) { /* 连接数据库 */ exec sql connect:用户名/密码; /* 操作数据库:比如查询 */ exec sql select 字段列表 into 变量列表 from 表名 where 条件; /* 关闭并释放连接资源 */ exec sql commit work release; exec sql rollbakc work release; } 3.C程序的开发步骤 1) 编写源程序 vi xxx.c 2) 编译、链接 gcc xxx.c -lxxxxx 3) 运行 ./a.out 4.proc程序的开发步骤 1) 编写源程序 vi xxxx.pc 2) 预编译 proc xxx.pc -----> xxx.c 3) 编译、链接 gcc xxx.c -lclntsh -- linux gcc xxx.c -lorasql10(11) -- windows 4) 运行 ./a.out 案例:first.pc vi first.pc proc first.pc gcc first.c -lclntsh ./a.out 5. 宿主变量 5.1 概念 proc中C语言称为宿主语言 在宿主语言中定义,即可以在宿主语言中使用,也可以在sql语句中使用的变量,称为宿主变量。 5.2 宿主变量的数据类型 char 字符型 char var[n] 定长字符串 short int 整型 long float double 浮点型 varchar var[n] 变长字符串 5.3 定长字符串和变长字符串 5.3.1 定长字符串 字符串的长度不足时用空格补齐 案例:charn.pc 5.3.2 变长字符串 案例:varcharn.pc char name[25] ----> varchar name[25] 预编译时,varchar类型的数组被翻译成了同名的结构: struct{ unsigned short len; unsigned char arr[25]; } name; varchar类型的数组在sql语句中使用时,和char型数组一样 在宿主语言中使用时,按照结构的用法: 提取字符串的值:name.arr 获取字符串的长度:name.len 使用varchar类型的数组时,可以会产生垃圾数据,解决方式: 1) 字符串进行初始化,把数组的所有元素初始化为'