- 浏览: 5029393 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (2844)
- java (1094)
- hadoop (37)
- jvm (39)
- hbase (11)
- sql (25)
- 异常 (83)
- div css (6)
- 数据库 (95)
- 有趣的code (15)
- struts2 (6)
- spring (124)
- js (44)
- 算法 (65)
- linux (36)
- hibernate (7)
- 中间件 (78)
- 设计模式 (2)
- 架构 (275)
- 操作系统 (91)
- maven (35)
- tapestry (1)
- mybatis (9)
- MQ (101)
- zookeeper (18)
- 搜索引擎,爬虫 (208)
- 分布式计算 (45)
- c# (7)
- 抓包 (28)
- 开源框架 (45)
- 虚拟化 (12)
- mongodb (15)
- 计算机网络 (2)
- 缓存 (97)
- memcached (6)
- 分布式存储 (13)
- scala (5)
- 分词器 (24)
- spark (104)
- 工具 (23)
- netty (5)
- Mahout (6)
- neo4j (6)
- dubbo (36)
- canal (3)
- Hive (10)
- Vert.x (3)
- docker (115)
- 分布式追踪 (2)
- spring boot (5)
- 微服务 (56)
- 淘客 (5)
- mesos (67)
- php (3)
- etcd (2)
- jenkins (4)
- nginx (7)
- 区块链 (1)
- Kubernetes (92)
- 驾照 (1)
- 深度学习 (15)
- JGroups (1)
- 安全 (5)
- 测试 (16)
- 股票 (1)
- Android (2)
- 房产 (1)
- 运维 (6)
- 网关 (3)
最新评论
-
明兜3号:
部署落地+业务迁移 玩转k8s进阶与企业级实践技能(又名:Ku ...
Kubernetes系统常见运维技巧 -
q328965539:
牛掰啊 资料收集的很全面
HDFS小文件处理解决方案总结+facebook(HayStack) + 淘宝(TFS) -
guichou:
fluent挂载了/var/lib/kubelet/pods目 ...
kubernetes上部署Fluentd+Elasticsearch+kibana日志收集系统 -
xu982604405:
System.setProperty("java.r ...
jmx rmi 穿越防火墙问题及jmxmp的替代方案 -
大漠小帆:
麻烦问下,“获取每个Item相似性最高的前N个Item”,这个 ...
协同过滤推荐算法在MapReduce与Spark上实现对比
*/ #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, "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 EXECUTE BEGIN OPEN :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语句作用的行数 }
[code="java"]/*
功能:演示了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> void connect(); void sql_err();void cursor(); void main() { EXEC SQL WHENEVER SQLERROR DO sql_err(); connect(); cursor(); EXEC SQL COMMIT RELEASE; } void sql_err() { //printf("%.*s\n",sqlca.sqlerrm.sqlerrml,,sqlca.sqlerrm.sqlerrmc); } void connect()/*数据库连接-本地数据库,不添加server*/ { EXEC SQL BEGIN DECLARE SECTION; VARCHAR oraCN[30]; EXEC SQL END DECLARE SECTION; strcpy(oraCN.arr,"scott/Tiger@TEST_dist"); EXEC SQL CONNECT :oraCN; } void cursor()/*游标的标准使用方式,声明,打开,抓取,关闭*/ { EXEC SQL BEGIN DECLARE SECTION; int dno,eno; char name[20]; float salary; EXEC SQL END DECLARE SECTION; printf("input dept no: "); 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 sql_err(); printf("a"); for(;;) { EXEC SQL FETCH emp_cursor INTO :eno,:name,:salary; printf("employee:%s,salary:%f\n",name,salary); } EXEC SQL CLOSE emp_cursor; }
发表评论
-
MyBatis 使用 MyCat 实现多租户的一种简单思路
2017-11-20 18:27 2836本文的多租户是基于多数据库进行实现的,数据是通过不同数据库进 ... -
Otter(一)初识----简介和基本架构图
2017-10-11 11:23 1273tter 初识----简介和基本架构图 ... -
Canal+Otter - 前日篇(1)
2017-10-11 11:21 1193数据库同步中间件Canal+Otter - 前日篇(1) ... -
Otter-入门篇1(阿里开源项目Otter介绍)
2017-10-11 11:16 944Otter-入门篇1(阿里开源项目Otter介绍) ... -
Mysql几种索引类型的区别及适用情况
2017-09-30 16:27 581如大家所知道的,Mysql目前主要有以下几种索引类型:FUL ... -
唯一索引与主键索引的比较
2017-09-29 10:21 1469唯一索引唯一索引不 ... -
主键索引和唯一索引的区别
2017-09-29 10:05 651-- 区别 主键是一种约束,唯一索引是一种索引,两者 ... -
Index column size too large. The maximum column size is 767 bytes
2017-09-28 18:01 1881Index column size too large. T ... -
数据库死锁分析与解决
2017-08-17 10:00 859一、死锁的表现 1、 ... -
mysql,oracle,sql server中的默认事务隔离级别查看,更改
2017-08-09 13:44 1372未提交读(隔离事务的最低级别,只能保证不读取物理上损坏的 ... -
Mycat跨分片Join
2017-08-02 11:26 8761 前言 Mycat目前版本支持跨分片的join,主要实现 ... -
Mycat 分布式事务的实现
2017-08-02 11:27 1368引言:Mycat已经成为了一个强大的开源分布式数据库 ... -
MyCat部署运行(Windows环境)与使用步骤详解
2017-08-02 10:20 8871、MyCat概念 1.1 总体架构 MyCAT的架 ... -
mycat 分片中快速数据迁移思考
2017-07-31 17:42 867操作实践背景: travelrecord表定义 ... -
Mycat水平拆分之十种分片规则
2017-07-31 16:43 872水平切分分片实现 配置schema.xml ... -
博客分类: DB-oracle sqlOracle 1、方式一:使用序列和触发器 Sql代码 收藏代码 SQL> CREATE SEQUENCE te
2017-07-22 09:01 506sqlOracle 1、方式一:使用 ... -
PL/SQL Developer连接本地Oracle 11g 64位数据库
2017-05-16 22:29 7071.登录PL/SQL Developer 这里省略Ora ... -
分库分表的几种常见形式以及可能遇到的难
2017-04-11 23:33 806在谈论数据库架构和数据库优化的时候,我们经常会听到“分库分表 ... -
MySQL 日志
2017-01-11 20:58 582概述 MySQL日志记录了MySQL服务器的各种行为,My ... -
undo log与redo log原理分析
2016-12-17 21:57 815数据库通常借助日志来 ...
相关推荐
Oracle PRO*C是一种预编译器,它允许开发者在C语言中嵌入PL/SQL代码,从而利用C语言的高效性和PL/SQL对数据库的强大操作能力。在处理大量数据时,游标是必不可少的工具,它可以逐行处理查询结果,特别适用于需要按行...
Pro*C中使用游标来逐行处理查询结果,而绑定变量则用于在SQL语句中传递参数,提高性能并减少SQL注入的风险。 4. **异常处理**:Oracle提供了一套完整的错误处理机制,Pro*C编程中需要了解如何捕获和处理Oracle的...
《Pro*C程序设计ORACLE调用接口》是关于在C语言中使用Oracle数据库的一种高效方法。Pro*C,全称为Pre-Compiler for C,是Oracle公司提供的一个预编译器,它允许开发者直接在C程序中嵌入SQL语句,极大地提高了数据库...
Pro*C,全称为Oracle Precompiling C,是Oracle公司推出的一种混合C语言和SQL的编程工具,它允许开发人员在C程序中直接嵌入SQL语句,以提高数据库应用的性能和效率。这种技术特别适用于需要高效访问Oracle数据库的...
**Pro*C是什么** Pro*C是Oracle公司开发的一种预...总的来说,这个"pro*c sample"是一个全面展示Pro*C特性和数据库操作的实例,包括了基本的CRUD操作和高级的游标、数组处理,对于学习和理解Pro*C编程非常有帮助。
在IT领域,PRO*C是Oracle公司提供的一种预编译器,它允许开发人员使用C语言来编写PL/SQL代码,从而更高效地与Oracle数据库进行交互。这个“PRO*C入门实例”可能是针对初学者的一个教程,通过一个实际的代码示例来...
Pro*C是Oracle公司提供的一种预编译器,它允许C或C++程序直接调用PL/SQL代码,极大地简化了数据库操作。本篇文章将详细探讨Linux下使用C/C++和Pro*C连接Oracle数据库的技术细节。 1. **Pro*C介绍**: Pro*C是...
1. Pro*C简介:Pro*C是一种将SQL语句嵌入C程序中的开发工具,它允许开发者在C语言中直接使用SQL语句访问Oracle数据库。它是一种第三代语言嵌入式SQL工具,可以在Oracle数据库管理系统中使用。Pro*C程序可以执行...
**Pro*C/C++ 编程** Pro*C/C++ 是一种集成在C或C++编程语言中的预处理器,它允许程序员直接在源代码中嵌入PL/SQL语句,用于与Oracle数据库进行交互。这种编程方式提供了高效且灵活的数据库访问手段,特别适合于开发...
《Pro*C程序设计详解》是一本深入探讨Pro*C编程技术的专业书籍,旨在帮助读者全面理解和掌握Pro*C这一C语言与Oracle数据库交互的重要工具。Pro*C是Oracle公司提供的一种预编译器,它允许程序员在C语言中直接嵌入SQL...
《精通PRO*C编程》这本书是针对Oracle数据库应用开发的一本专业指南,主要讲解如何使用PRO*C,Oracle提供的C语言预处理器,进行高效的数据库应用程序开发。PRO*C是Oracle Corporation为C程序员设计的一种工具,它...
7. **游标**:在处理多个结果集时,游标是非常重要的。Pro*C允许使用游标进行逐行处理查询结果,通过声明、打开、提取和关闭游标来实现。 8. **事务处理**:Pro*C支持事务控制,包括COMMIT、ROLLBACK和SAVEPOINT,...
Oracle数据库的Pro*C是一种预处理器,它允许C程序员直接在C代码中嵌入SQL语句,从而方便地与Oracle数据库进行交互。这个简单的例子详细展示了如何使用Pro*C编写、预编译和编译一个简单的程序。 首先,让我们了解Pro...
1. **声明游标**:`CURSOR mycur IS SELECT a.OperateDateTime, b.md_id FROM BL_InStore a, Ma_Detail b, ma_basis c WHERE a.bi_mbid = b.md_mbid AND a.bi_mbid = c.mb_id AND a.flag = 1;` 定义了一个名为`mycur...
PRO*C(也称为预编译C)是一种允许在C程序中嵌入SQL语句的技术,它结合了C语言的强大功能与Oracle数据库的高效数据处理能力。本文主要探讨如何使用PRO*C进行高效的大规模数据导出。 #### 二、问题概述 假设有一个...
《Pro*C/C++预编译器入门指南 8.1.6 for Windows》是Oracle公司为开发者提供的一份关于在Windows环境下使用Pro*C/C++工具的起步教程。这份文档主要涵盖了如何利用C++语言与Oracle数据库进行交互的预编译技术,旨在...
- **游标**:在 Pro*C 中,游标用于处理 SELECT 语句返回的结果集,可以逐行处理数据,通过声明和使用游标,可以实现更复杂的查询逻辑。 总之,Pro*C 提供了一种高效且灵活的方式,让开发者能够利用 C 语言的强大...
Pro*C,是Oracle提供的一种预编译器,用于将C语言与PL/SQL结合,使得在C/C++程序中可以直接操作Oracle数据库。本文将深入探讨如何在Pro*C中实现分页查询,主要关注两种常用的方法。 首先,让我们回顾一下基本的分页...
4. **游标**:用于处理查询结果集,允许逐行处理数据,是数据库操作中的重要工具。 5. **存储过程和函数**:封装可重用的代码,可以接受参数并返回结果,提高代码的可维护性和效率。 6. **包**:包含一组相关的...
根据提供的文档信息,我们可以深入探讨Pro*C/C++ Programmer’s Guide, 10g Release 2 (10.2)中的核心知识点。这份文档是Oracle针对使用C和C++语言编程时与Oracle数据库交互的技术指南。 ### 一、Pro*C/C++简介 ...