摘要:最近在做视频的开发,其中视频的设备接入管理服务器、流媒体管理服务器、中心服务器都涉及到了数据库的操作,同时需要兼容大多数版本的数据库,包括mysql、sqlite、oracle。公司原来使用的是ado来进行数据库的开发的, 但是考虑到目前需要兼容linux,目前使用Poco框架封装的数据库模块进行开...
阅读全文
随笔分类 - Oracle
摘要:基于Oracle OCI的数据访问C语言接口ORADBIcheungmine@gmail.comMar. 22,2008ORADBI是我在Oracle OCI(Oracle 调用接口)基础上开发的,支持Oracle8i、9i、10g等数据库。根据Oracle公司的介绍:OCI是如此可靠,以至于Oracle数据库中的每一条SQL语句都通过OCI来执行。当应用程序开发人员需要面向Oracle数据库服务器的最强大的接口时,他们将调用 Oracle调用接口(OCI)。OCI提供了对所有Oracle数据库功能的最全面的访问。OCI API中包含了最新的性能、可伸缩性和安全性特性。采用OCI的最大好处就.
阅读全文
摘要:在VC中访问Oracle,可以使用ADO或ODBC,如果你比较强大,也可以直接使用OCI API,但我个人认为OTL是最佳选择,它是一套数据库访问C++模板库,全部代码都在otlv4.h头文件中,通过OTL不但可以访问Oracle数据库(使用OCI API),还可以访问DB2,或者使用ODBC连接字符串访问其他数据库。 otl的源码只有一个头文件——otlv4.h。下面以一个例子来说明如何使用otl。[cpp]view plaincopy #defineOTL_ORA10G#includevoidCAboutDlg::OnBnClickedOk(){//TODO:在此添加控件通知处理程序代码o
阅读全文
摘要:一、oracle10g安装,比较简单 1.去Oracle网站下载Vista版的Oracle:Oracle Database 10gRelease 2 (10.2.0.4) for Microsoft Windows Vista x64 and Microsoft Windows Server 2008 x64 2.解压下载的安装文件10204_vista_w2k8_x64_production_db.zip 3.修改验证文件来支持windows7 修改\stage\prereq\db\refhost.xml 加入 ...
阅读全文
摘要:软件景象:64位win7、32位Oracle 10g、 PL/SQL 9.0.4.1644 媒介:以前开辟用的都是32位体系,忽然换到64位上,安装景象真的有点麻烦了,尤其对于PL/SQL只支撑32位等。看了很多的材料,但一些题目并不克不及直接解决。花了一天时候终于安装成功了,下文将安装过程中碰到的题目记录下,以便作为今后的参照,也对大师解决类似题目有效。情景:安装完win7后,新建了一个用户,但在安装完Oracle后,点击Net Configuration Assistant,,没有任何反响。 原因:权限题目,须要有高等经管员权限; 解决办法:win7体系内置administor高...
阅读全文
摘要:问题是:我在自己电脑(win764bit)上安装了oracle的64位数据库 通过sqlplus能正常连接主要是安装pl/sql时 我是这样安装的1、在网上下载了个instantclient-basic-nt-11.2.0.3.0包解压放在E盘下 路径如下E:\instantclient-basic-nt-11.2.0.3.0\instantclient_11_22、我在PL/SQL中的perferences中connection中的oracle_home:E:\instantclient-basic-nt-11.2.0.3.0\instantclient_11_2 ...
阅读全文
摘要:如果系统里安装了多个ORACLE产品,那么在注册表里,有可能也会有多个ORACLE HOME,在不设置系统环境变量的情况下,默认情况使用哪个ORACLE HOME?HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\DEFAULT_HOME这个值就是默认的ORACLE HOME,有了DEFAULT_HOME的值,你可以在HOME0或HOME1或HOME2...中的ORACLE_HOME_NAME找到对应值,所处的HOMEx就是默认的ORACLE_HOME.如何在注册表里更改ORACLE_HOME?把HKEY_LOCAL_MACHINE\SOFTWARE\O
阅读全文
摘要:在程序中定义变量、常量和参数时,则必须要为它们指定PL/SQL数据类型。在编写PL/SQL程序时,可以使用标量(Scalar)类型、复合(Composite)类型、参照(Reference)类型和LOB(Large Object)类型等四种类型。在PL/SQL中用的最多的就是标量变量,当定义标量变量时,必须要指定标题数据类型,标题数据类型一般包括:数字类型,字符类型,日期类型,布尔类型,每种类型又包含相应的子类,例如NUMBER类型包含INTEGER,POSITIVE等子类型。一、常用标量类型1.VARCHAR2(N)2.CHAR(N)3.NUMBER(P,S)4.DATE5.TIMESTA.
阅读全文
摘要:案例:scott.emp表的销售员工资只能增加,不能减少代码:CREATE OR REPLACE TRIGGER tr_emp_updBEFORE UPDATE OF salON empFOR EACH ROW --当更新销售员时才触发WHEN (OLD.job='SALESMAN')DECLAREBEGIN IF(:NEW.sal<:OLD.sal) THEN raise_application_error(-20013,'销售员工资不能降低!'); END IF;END;运行情况:SQL> update emp set sal=sal-1000
阅读全文
摘要:oracle循环语句loop 和while 用法a. loop...end loop(至少执行一次)请编写一个过程,可以输入用户名,并循环添加10个用户到 users表中,用户编号从1开始增加。create or replace procedure sp_pro6(spName varchar2) is v_num number:=1;beginloopinsert into users values(v_num,spName);--判断是否要退出循环exit when v_num=10;v_num:=v_num+1;end loop;end; b.while 循环请编写一个过程,可以输...
阅读全文
摘要:oracle条件分支用法a.if...thenb.if...then... elsec.if...then... elsif.... else 实例 1问题:编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该员工工资增加10%。 create or replace procedure sp_pro6(spName varchar2) is v_sal emp_copy.sal%type;beginselect sal into v_sal from emp_copy where ename=spName;if v_sal<2000 thenupdateemp_copy
阅读全文
摘要:1. CASE WHEN 表达式有两种形式--简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASEWHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 2. CASE WHEN 在语句中不同位置的用法2.1 SELECT CASE WHEN 用法SELEC
阅读全文
摘要:实例演示: (1)查询表users中的数据。 select u.id,u.realname,U.SEX from users u; 查询结果如下 ID REALNAME SEX 1 10082 松XX 2 10084 林XX 1 3 10087 西XX 4 10100 胡XX 5 10102 龙XX 1 ...... (2)上表结果中的"sex"是用代码表示的,希望将代码用中文表示。可在语句中使用CASE语句。select u.id,u.realname,U.SEX, ( case u.sex when 1 then '男' when 2 then '
阅读全文
摘要:最近总结了一下oracle主键的设置方法,贴到这保存一下吧。有两种方法可以设置主键,一种是自增长主键,另一种就是生成唯一序列。 一、自增长主键 --首先建一个表TEST?create table TEST ( NID int PRIMARY KEY, test1 varchar2(20), test2 varchar2(20), test3 varchar2(20), test4 varchar2(20), test5 varchar2(20) )-- 再建一个序列SEQ_TEST ?create sequence SEQ_TEST minvalue 1 --最小值 nomaxv...
阅读全文
摘要:如何使用Oracle序列:Oracle序列(sequence)是一种数据库项,能够生成一个整数序列。通常用于填充数字类型的主键列。 1、创建序列: CREATE SEQUENCE sequence_name [START WITH start_num] [INCREMENT BY increment_num] [{MAXVALUE maximum_num|NOMAXVALUE}] [{MINVALUE minimum_num|NOMINVALUE}] [{CYCLE|NOCYCLE}] [{CACHE cache_num|NOCACHE}] [{ORDER|NOORDER}] 其中: sta.
阅读全文
摘要:导读]dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。我们可以用它来做很多事情。 dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。我们可以用它来做很多事情,如下: 1、查看当前用户,可以在 SQL Plus中执行下面语句 select user from dual; 2、用来调用系统函数 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;--获得当前系统时间 select SYS_CONTEXT('US
阅读全文
摘要:在 SQLSERVER2005以后,mssql开始有了递归查询的方法了。比较起最开始写存储过程或者写function的方式。这样的方式更加简便灵活的。而oracle也有自带的树形结构递归查询方法,connect by下面我自己写的一段SQL,简单注释下CTE共用表达式的一些用法。 实现对树状结构的根
阅读全文
摘要:一般情况下, 你若直接安装ORACLE服务器端软件, 则Oracle ODBC Source自动会被添加进去, 从而不需你做任何事情的.我现在讲一下, 如何通过ORACLE客户端来添加ORACLE ODBC Source的过程.第一步, 点击此链接http://www.oracle.com/technetwork/database/10201winsoft-095341.html (此为ORACLE官方网站)去下载客户端软件. 我们此处以10G为例.所以, 你需要下载10201_client_win32.zip文件.第二步, 解压10201_client_win32.zip, 并双击运行set
阅读全文
摘要:SQL触发器实例1定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 常见的触发器有三种:分别应用于Insert , Update , Delete 事件。 我为什么要使用触发器?比如,这么两个表: Create
阅读全文
摘要:方法一:1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId)
阅读全文