Oracle中如何使用非滚动游标
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章给大家介绍Oracle中如何使用非滚动游标,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。/* 功能:演示了Oracle非滚动游标操作 定义游标
千家信息网最后更新 2025年11月08日Oracle中如何使用非滚动游标
这篇文章给大家介绍Oracle中如何使用非滚动游标,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
/* 功能:演示了Oracle非滚动游标操作 定义游标时注意事项: 1. DECLARE CURSOR语句必须是使用游标的第一条语句 2. 游标名称是一个标识符,而不是宿主变量,其长度是可以任意的,但只有前31个字符有效 3. 游标所对应的SELECT语句不能包含INTO子句 4. 游标语句(DECLARE,OPEN,FETCH,CLOSE)必须在同一个预编译单元内*/#include#include #include #include #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, "zzb888888"); 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, eno; // 定义宿主变量 char name[10]; float salary; printf("输入部门号:"); scanf("%d", &dno); EXEC SQL DECLARE emp_cursor CURSOR FOR Select empno, ename, sal from emp where deptno=:dno; // 定义游标 EXEC SQL OPEN emp_cursor; // 打开游标 EXEC SQL WHENEVER NOT FOUND DO break; // 游标数据提取完毕后退出循环 for(; { EXEC SQL FETCH emp_cursor into :eno, :name, :salary; // 循环提取数据 printf("name = %s(%d), salary = %.2f\n", name, strlen(name), salary); } EXEC SQL CLOSE emp_cursor; // 关闭游标 printf("sqlca.sqlerrd[2] = %d\n", sqlca.sqlerrd[2]); // sqlca.sqlerrd[2]存放着Select语句作用的行数}
运行结果:
输入部门号:20
name = SMITH (9), salary = 800.00
name = JONES (9), salary = 2975.00
name = SCOTT (9), salary = 3000.00
name = ADAMS (9), salary = 1100.00
name = FORD (9), salary = 3000.00
sqlca.sqlerrd[2] = 5
关于Oracle中如何使用非滚动游标就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
游标
语句
内容
变量
宿主
数据
更多
部门
帮助
循环
输入
不错
有效
事项
作用
兴趣
功能
单元
句柄
只有
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库求平方函数
浙江智能化软件开发哪家好
编程数据库spring
ei数据库如何查看论文
成都市网络安全保卫支队6
数据库中 语句怎么写
常熟网络技术专业服务
徐州联盟服务器是网通还是电信
高中网络技术应用难点
数据库应用与实训讲什么
网络安全管理持证上岗
sql数据库实用案例教程
软件开发需求变更管理文档
国产数据库分类oracle
软件开发的谈判计划书
企业网络安全的主要隐患
软件开发和人工智能选择哪个
管家婆软件开发流程
广电网络安全传输制度
检测网络安全教程
数据库中的冗余数据概念
湖北创新网络技术服务技巧
100并发服务器配置
天津人人车网络技术公司座机
梅州卫星软件开发费用
招募管理员我的世界服务器
空天一体化网络技术
贵州专业软件开发服务检测中心
手机登陆华为云服务器账户认证
存放数据库公共信息