c++ Oracle OCCI 编程】的更多相关文章

原地址http://blog.sina.com.cn/s/blog_53a72add01015zj4.html 找不到具体的出处,只好不写了. OCCI数据库ORACLE编程步骤1. 配置环境(1) Occi访问数据库需要occi.h头文件,此文件在oracle安装目录下,必须有oracle库的支持.安装oracle服务端或客户端:(2) 配置NLS_LANG环境变量,必须与数据库的字符编码一致,否则可能出现中文乱码:(3) 配置环境变量,使客户端支持中文显示:(4) 安装C++编程工具和g++…
转载备忘:http://blog.sina.com.cn/s/blog_53a72add01015zj4.html 关于occi编程可以参考的链接: http://blog.itpub.net/16203369/viewspace-1116537/ http://docs.oracle.com/cd/B28359_01/appdev.111/b28390/loe.htm http://www.programgo.com/article/1812410873/ OCCI数据库ORACLE编程步骤1…
1. 创建OCCI环境变量 Environment *env = Environment::createEnvironment(); Environment对象的建立必须放在第一位,而且也必须是最后一个被终止 2. 终止OCCI环境变量 Environment::terminateEnvironment(env); 3. 连接数据库 Connection *conn = env->createConnection(usename,password,[connectionstring]); con…
OCCI简介 Oracle® C++ Call Interface (OCCI) 是一套应用程序编程接口,它允许C++程序与一个或者多个Oracle数据库进行交互.OCCI给予你强大的数据库操作能力,比如说执行SQL,处理存储过程等. OCCI主要是提供给有以下需求的用户: 希望借助系统内存和网络连接的合理使用,开发高性能的应用程序. 开发可伸缩的应用程序,以满足数据库用户和请求的不断增长. 支持访问数据库对象. 简化用户认证和密码管理. 支持多层认证模式 两层C/S环境或者多层环境下,动态连接…
官网:Oracle C++ Call Interface 一.OCCI介绍 Oracle C++ Call Interface(OCCI)是一个用于访问Oracle数据库的高性能且全面的API.基于标准C++和面向对象范式,OCCI被设计成用来提高开发Oracle应用程序的效率和质量. OCCI正在被应用与C/S.中间件以及复杂的对象模型程序中. 二.OCCI特性…
第一章 Oracle数据库基本概念 一.介绍 Oracle数据库系统是美国Oracle(甲骨文)公司提供的以分布式数据库为 核心的一组软件产品,是目前最流行的客户/服务器(Client/Server,C/S)或 浏览器/服务器(Browser/Server,B/S)体系结构的数据库之一.二.特点1.完整的数据管理功能:数据的大量性数据的保存的持久性数据的共享性数据的可靠性Oracle优点:可用性强可扩展性强数据安全性强稳定性强三.Oracle数据库的辑逻结构1.表空间一个数据库被分割为数个被称作…
Proc 是Oracle提供的一种数据库操作的API.它是基于ESql技术的,需要预编译后才可以变成普通c代码,非常不直观,使用起来不太方便,阅读也存在困难. 因为这些问题导致程序员平时开发中会出现一些Proc操作存在效率低下的情况,本文介绍一些Proc一些编译经验,希望能给大家提供参考. 下面以一个简单需求进行举例说明: 要求把DB1里面一张数据表tbl_hch_test的数据导出到DB2的同名表. 最快的方法当然是使用oracle的数据泵工具进行压缩导出再导入,但expdp/impdp对数据…
了解如何利用连接和语句池特性来提高 Oracle 驱动的 JDBC 程序的性能.作者:Yuli Vasiliev2009 年 4 月发布使用诸如连接池和语句池等池技术可以显著提高数据库密集型应用程序的性能,因为这样可以实现对象重用,而无需花费时间和资源重新创建对象.如果应用程序与数据库频繁交互并且经常使用相同的参数重新建立连接,那么重用表示应用程序使用的物理数据库连接的数据库连接对象可显著提高性能.反之,如果应用程序与其基础数据库很少连接,您不会因使用连接池获益.实际上,如果池的设置(例如,允许…
一.概述 1.sql语言特点 sql语言采用集合操作方式,对数据的处理是成组进行的,而不是一条一条处理,听过使用集合操作方式,可以家加快数据的处理速度. 执行sql语句时每次只能发送并处理一条语句.如果要降低语句发送和处理次数,可以使用pl/sql 执行sql语句时,用户只需要知道其逻辑含义,而不需要关心sql语句的具体执行步骤 使用sql时,既可以采用交互方式执行,也可以嵌入到高级语言中执行. 2.语言分类 数据查询语言(select语句):用于检索数据库数据.在select语句的功能和语法最…
9.在JDBC中应用Oracle: JDBC访问数据库基本步骤:          1.加载驱动          2.获取链接对象          3.创建SQL语句          4.提交SQL语句          5.处理          6.关闭打开对象 Dao(data access object)数据库访问对象,标准的DAO是一个接口(interface).…
2.PL/SQL编程基础: PL/SQL块:        declare        定义部分        begin        执行部分        exception        异常处理部分        end结束标记 当使用dbms_output包输出数据或消息时,必须要将SQL*Plus的环境变量serveroutput设置为on.        如:set serveroutput on(输出显示打开) 命令行:        SQL>        用/结束命令行代…
一.启动和停止oracle 停止和启动oracle须要切换到oracle用户才干够,其它用户都没有权限启动和停止oracle(包含root也没有权限). 1.执行sqlplus但不登录到oracle: sqlplus /nolog 2.以系统管理员的权限连接到oracleserver conn /as sysdba; 3.启动oracle服务 startup 4.停止oracle服务 shutdown immediate; oracle的listener 相当于oracle的TCPserver,…
8.使用PL/SQL编写触发器: 触发器存放在数据缓冲区中.        触发器加序列能够实现自动增长.        在触发器中不能使用connit和rollback.        DML触发器在对特定的表执行DML(insert.update.delete)操作时激发.        语句级不能用:new和:old,行级可用.(在触发器中加上for each row就是行级触发器,不加则默认语句级)        一张表可以有多个触发器,但是一个触发器只能监听一个表. 定义触发器:   …
--3.查询10部门所有员工的姓名.(ref游标实现) 动态游标 declare --创建一种游标类型 type type_cursor is ref cursor; --声明变量指定游标类型 v_cur type_cursor; v_ename emp.ename%type; begin open v_cur for select ename from emp where deptno=10; loop fetch v_cur into v_ename; exit when v_cur%not…
上一节我们讲过了ADO连接Oracle,这一节我们尝试通过OCCI的方式,来在windows平台下连接Oracle数据库,下一节讨论在Linux环境下通过OCCI的方式连接远程的Oracle数据库. 首先说一下Oracle C++ CallInterface (OCCI)是Oracle自带的一套应用程序编程接口,它允许C++程序与一个或者多个Oracle数据库进行交互,OCI虽然开发起来难度大一些,但是它的速度极快,而且是一种底层接口,几乎可以操纵Oracle数据库的任何对象. 环境:windo…
OCCI介绍 OCCI:Oracle C++调用接口(OCCI),即Oracle的C++API,允许你使用面向对象的特性.本地类.C++语言的方法来访问Oracle数据库. OCCI优势 基于标准C++和面向对象的设计: 效率较高: 适合开发C/S模式的程序,软件中间层: OCCI特性 完整支持SQL/PLSQL 为不断增长的用户和请求提供了弹性选项 为使用用户自定义类型,如C中的类,提供了无缝接口 支持所有的Oracle数据类型以及LOB types 可以访问数据库元数据 OCCI头文件及动态…
ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问.由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理.除此之外,可以在ORACLE数据库的某些客户端工具中,使用PL/SQL语言也是该语言的一个特点.本章的主要内容是讨论引入PL/SQL语言的必要性和该语言的…
1.安装OCCI 如果oracle数据库默认没有安装OCCI,可以自己从官网上下载与自己数据库版本一致的API,其中包含四个软件包: oracle-instantclient-sqlplus-10.2.0.5-1.i386.rpm oracle-instantclient-devel-10.2.0.5-1.i386.rpm oracle-instantclient-odbc-10.2.0.5-1.i386.rpm oracle-instantclient-basic-10.2.0.5-1.i38…
前提是已经安装好Oracle 9i. 1. 下载对应的ORACLE client安装. http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 因为没有9i的client提供下载了,我选择最接近的版本下载: Version 10.1.0.5 Instant Client Package - Basic: All files required to run OCI, OCCI, and…
解决方法如下: oracle::occi::Environment *pOracleOcciEnv = Environment::createEnvironment(oracle::occi::Environment::DEFAULT); 改为 oracle::occi::Environment *pOracleOcciEnv = Environment::createEnvironment("UTF8", "UTF8"); 在执行SQL语句时需要先转成UTF8格式…
occiwrapper使用指南 occiwrapper是一个开源的.跨平台的Oracle访问组件, 方便C++开发者们灵活地操作oracle数据库.为了方便使用,组件中的接口形式参考的POCO库的使用方式.occiwrapper采用如下的形式执行SQL语句: occiwrapper::Session s = SessionInstance( connection ); s << "truncate table TBL_TEST ", now; 通过session对象维护一个…
oracle 用occi编程的时候,批量提交使用绑定变量的方式,主要瓶颈再sql语句解析上,改成merge into后效率没有变化,但是使用绑定变量方法,能加快速度…
Golang连接Oracle的库有很多,比较常见的如下: 不过,oralce 只提供了 oci8 的接口,必须通过它来调用,所以下面方案都逃不过相关设置. 1.go-db-oracle 地址: https://code.google.com/p/go-db-oracle/ 官方介绍: Oracle Driver using cgo to call OCI libraries from Oracle Instant Client 11. Developed with Linux Status in…
oracle的触发器分为语句级和行级两种类型,在视图上所创建的触发器叫做什么类型的触发器? DML触发器有三类: 1, insert触发器: 2, update触发器: 3, delete触发器: 触发器的组成部分: 触发器的声明,指定触发器定时,事件,表名以类型 触发器的执行,PL/SQL块或对过程的调用 触发器的限制条件,通过where子句实现 类型: 应用程序触发器,前台开发工具提供的: 数据库触发器,定义在数据库内部由某种条件引发:分为: DML触发器: 数据库级触发器: 替代触发器:…
通过控制面板->管理工具->Event Viewer->Windows Log->Application Logs, 可以看到可以看到是如下错误 “C:\Windows\oraocci11d.dll”的激活上下文生成失败. 找不到从属程序集 Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32…
1.安装运行环境 # yum install gcc-c++ 备注:此时会将gcc-c++和libstdc++-devel都安装上. 2.查看g++是否安装成功[root@MyRHEL 桌面]# g++ -v 使用内建 specs. 目标:x86_64-RedHat-linux 配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla…
oracle高级知识(1) ORA-01555 快照过旧,是数据库中很常见的一个错误,比如当我们的事务需要使用undo来构建CR块的时候,而此时对应的undo 已经不存在了, 这个时候就会报ORA-01555的错误. 有关CR 块,参考我的Blog: CR (consistent read) blocks create 说明 http://blog.csdn.net/xujinyang/article/details/6823237 老熊Blog上的一个链接: http://www.laoxio…
Oracle数据库之开发PL/SQL子程序和包   PL/SQL块分为匿名块与命名块,命名块又包含子程序.包和触发器. 过程和函数统称为PL/SQL子程序,我们可以将商业逻辑.企业规则写成过程或函数保存到数据库中,以便共享. 过程和函数均存储在数据库中,并通过参数与其调用者交换信息.过程和函数的唯一区别是函数总向调用者返回数据,而过程不返回数据. 1. 存储过程概念 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中.经过第一次编…
数据库操作方式:可以采用ADO方式,也可以采用oracle本身提供的Proc*C/C++或者是OCCI方式操作数据库.  连接方式:可以是客户端连接.也可以是服务器端连接.  数据库配置:无论是何种连接都需要进行数据库连接的配置,一般在ORACLE_HOME下面的network/admin/tnsnames.ora文件中进行配置,如果没有此目录或者是此文件,需要自己手工添加.内容格式大致如下: 点击(此处)折叠或打开 BM2D0 = (DESCRIPTION = (ADDRESS_LIST =…
使用C++操作数据库,转换返回结果集为json格式,易于解析. 以下程序的编译.运行环境:Windows 10 1803.VS2017 17.5.2(vc14).解决方案配置:Release.解决方案平台:X86 #include <iostream> #include <occi.h> #include <json.h> #pragma comment(lib,"oraocci12.lib") #pragma comment(lib,"j…