代码:xx.pc

/* 功能:演示了Oracle滚动游标变量的使用定义游标时注意事项: 1. DECLARE CURSOR语句必须是使用游标的第一条语句 2. 游标名称是一个标识符,而不是宿主变量,其长度是可以任意的,但只有前31个字符有效 3. 游标所对应的SELECT语句不能包含INTO子句 4. 游标语句(DECLARE,OPEN,FETCH,CLOSE)必须在同一个预编译单元内
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>   #include <sqlca.h>
#pragma comment(lib, "orasql10.lib")int connect();
void cursor();
void sql_error();  void main()
{  EXEC SQL WHENEVER SQLERROR DO sql_error();  // 安装错误处理句柄   if(connect() == 0)  {  cursor();  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 cursor()                   // 游标操作
{  int dno;                    // 定义宿主变量   char name[10];  float salary;// 定义游标变量sql_cursor emp_cursor;     // sql_cursor:是Proc*C/C++的伪类型printf("请输入部门号:");scanf("%d", &dno);EXEC SQL ALLOCATE :emp_cursor;         // 分配游标变量EXEC SQL EXECUTEBEGINOPEN :emp_cursor FOR Select ename, sal from emp where deptno=:dno;END;END-EXEC;EXEC SQL WHENEVER NOT FOUND DO BREAK;   // 游标数据提取完毕后退出循环while(1){  EXEC SQL FETCH :emp_cursor into :name, :salary;printf("name = %s(%d), salary = %4.0f\n", name, strlen(name), salary);}EXEC SQL CLOSE :emp_cursor;              // 关闭游标变量EXEC SQL FREE :emp_cursor;             // 释放游标变量printf("sqlca.sqlerrd[2] = %d\n", sqlca.sqlerrd[2]);        // sqlca.sqlerrd[2]存放着Select语句作用的行数
}

另外还需要做一定的设置:

[Pro*c]滚动游标变量的使用相关推荐

  1. Pro*c使用滚动游标进行更新或删除游标行

    代码:xx.pc /* 功能:演示了Oracle滚动游标进行更新(或删除)操作 定义游标时注意事项: 1. DECLARE CURSOR语句必须是使用游标的第一条语句 2. 游标名称是一个标识符,而不 ...

  2. [Oracle]使用滚动游标

    源代码:xx.pc /* 功能:演示了Oracle滚动游标操作 定义游标时注意事项: 1. DECLARE CURSOR语句必须是使用游标的第一条语句 2. 游标名称是一个标识符,而不是宿主变量,其长 ...

  3. [Oracle]使用非滚动游标

    源码:xx.pc /* 功能:演示了Oracle非滚动游标操作 定义游标时注意事项: 1. DECLARE CURSOR语句必须是使用游标的第一条语句 2. 游标名称是一个标识符,而不是宿主变量,其长 ...

  4. Oracle主机变量锚定、游标变量

    System Global varaibles. 系统全局变量,只要sqlplus不断开连接,name这个变量会一直存在,切换用户会话对其无影响. SQL> -- 非plsql变量 SQL> ...

  5. Oracle游标和游标变量

    一.游标: 游标的概念: 游标的作用是临时存储从数据库中提取的数据块,由系统或者用户以变量的形式定义,是sql的内存工作区: // 分为两种类型:显式游标和隐式游标 隐式游标 系统定义和管理的,像DM ...

  6. Pro*c使用指示变量来处理NULL列值

    代码:xx.pc /* 功能:演示了Oracle使用指示变量(专门用来处理NULL值) 指示变量专门用于处理数据库的NULL值,它是一种short类型的C语言变量. 当执行内嵌SELECT语句或FET ...

  7. oracle创建存储过程设置变量,oracle建游标变量包,且在存储过程中使用

    --建包 createorreplacepackage PA_BGYZB as type sp_cursor is ref cursor; end PA_BGYZB; --存储过程调用包 create ...

  8. 一条一条来,MySQL变量、流程控制与游标,完整详细可收藏

    文章目录 1. 变量 2. 定义条件与处理程序 3. 流程控制 4. 游标 MySQL8的新特性-全局变量的持久化 1. 变量 在MySQL数据库的存储过程和函数中,可以使用变量来存储查询或计算的中间 ...

  9. MySql基础篇---004 其它数据库对象篇:视图,存储过程与函数,变量、流程控制与游标 ,触发器

    第14章_视图 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. 常见的数据库对象 对象 描述 表(TABLE) 表是存储数据的逻辑单元,以行和列的形 ...

最新文章

  1. 交换友链的几个技巧!
  2. javascript变量提前声明
  3. Java IO篇:序列化与反序列化
  4. SpringSecurity的简单使用使用案列说明
  5. linux docker漏洞,安装shadow或linux-pam的Alpine Linux Docker镜像有漏洞,附解决
  6. CAP 2.3版本发布,支持 MongoDB
  7. codeforces:812(div2):总结
  8. Linux 命令之 chown -- 用来变更文件或目录的拥有者或所属群组
  9. 作者:沈志宏(1977-),男,博士,中国科学院计算机网络信息中心高级工程师...
  10. perl java远程调用函数调用_如何从Java调用Perl?
  11. C语言 FileStreaming fseek
  12. 默认文件夹为空,如何从Microsoft Edge下载收藏夹
  13. Audio之音频帧周期(四十三)
  14. android webview浏览器下载文件,Android 浏览器 —— 使用 WebView 实现文件下载
  15. 如何查看电脑连接过的WiFi密码
  16. 基础优化 标题优化 上下架注意事项 流量少 转换率低 加购收藏 店铺层级 动销率 动态评分 当你弄清楚这些,自然流量的起来的重要因素
  17. 【Pygame实战】俄罗斯方块 | 太好玩了~停不下来,这种版本(Turtle彩版)你肯定没玩过……(经典怀旧:无人不知的俄罗斯方块)
  18. java语言基础(七):Collection、泛型、案例:斗地主
  19. WordPress调用文章中第一张图片作为缩略图(特色图像)的方法
  20. 2021 An Updated Comparison of Four Low Earth Orbit Satellite Constellation Systems to Provide Global

热门文章

  1. Human_height
  2. FCN全卷积网络随笔
  3. leetcode 26. 删除有序数组中的重复项
  4. Django first lesson 环境搭建
  5. 工具_HBuilder使用快捷方式
  6. 2. Add Two Numbers
  7. *** Python版一键安装脚本
  8. Java--Socket通信
  9. jquery获取select选择的文本与值
  10. String,StringBuffer,StringBuilder简单对比