printf("connect error\n");
}
else printf("connect ok\n");
EXEC SQL insert into table1 values('key','value');
if(sqlca.sqlcode) {
printf("sqlcode=%ld,sqlerr=%s\n",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
printf("Insert Error\n");
}
else printf("Insert OK!\n");
EXEC SQL commit;
EXEC SQL select key,value into :key,:value from table where key='key';
printf("sqlcode=%ld,sqlerr=%s\n",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
printf("key=%s,value=%s\n",key,value);
return 0;
}
下一步:熟悉一下oracle的数据库组织,与informix对比进行学习。可能着重是概念吧。
希望有人喜欢。
一、概念
用户:informix直接使用操作系统的用户管理系统,一般使用root和informix作为超级操作员,对其他用户进行管理。oracle有自己独立的用户管理系统,一般使用SYS和SYSTEM作为超级操作员,对其他用户进行管理。
实例:由访问数据库所需的一部分计算机内存和辅助处理后台进程组成,这个概念对oracle和informix都是相同的。一台机器上可以起多个实例,各自使用自己分配的内存和后台进程,一般一台机器上只起一个实例。在对数据库进行存取时实际上都是在这片共享内存进行操作,到达校验点时才真正将数据写入硬盘。
数据库:在每个实例上可以创建多个数据库,共享同一个实例的资源,oracle和informix是相同的。
表空间:informix称为dbspace,由裸设备上创建的chunk组成,表空间本身没有大小限制,但组成表的单个chunk最大不超过2G;由于直接使用原始磁盘和自己的I/O系统,不用操作系统的I/O系统及其开销,数据存取更为高效。oracle使用操作系统的文件系统,没有大小的限制。
访问数据库的屏幕接口:informix支持dbaccess和isql,其中dbaccess时数据库引擎的一部分,包含在informix的安装中,isql是需要另外购买的独立产品;其中只能写sql语句和informix扩展的一些语句。oracle支持sqlplus和更为友好网页界面,支持PL/SQL编程,包括SQL语句,感觉类似python。
数据库特性:oracle是面向对象的关系数据库系统(ORDBMS),支持面向对象的概念。informix是关系型数据库管理系统(RDBMS)。
配置文件:informix在onconfig.std文件中,每个实例一个。oracle初始化参数文件在$ORACLE_HOME/admin/TEST/pfile/目录下,名为:init.ora.615200511947(随机产生的ID).
二、数据类型
oracle的数据类型:
CHAR 字符型,最长2000字节
NCHAR 基于字符集的字符型,同上
VARCHAR2 变长字符型,最长4000字节
NVARCHAR 基于字符集的变长字符型,同上
VARCHAR 同VARCHAR2
NUMBER(s,d) 数字型,总位数位s位,小数位为d位,总长最大为38位
DATE 日期型
LONG 变长字符型,最长为2 G字节
RAW 纯二进制数据类型,最长为2000字节
LONG RAW 变长二进制数据类型,最长为2G字节
BLOB 二进制大对象类型,最长为4 G字节
NLOB 包含定宽的多位数字符大对象类型,最长为4 G字节
CLOB 包含单个字符的字符大对象类型,最长4 G字节
BFILE 数据库外的大型二进制的输入器类型,最大为4 G字节
MLSLABLE 操作系统中二进制标签类型
ROWID 姬路的物理地址类型
informix的数据类型:(见《Informix Guide to SQL 参考指南》:系统目录表,数据类型,环境变量)
0=char(n) 定义宽度为n的字符字段,最长255
1=smallint 短整型,-32767-32767
2=integer 整型,-2147483647-2147483648
3=float(x) 浮点型,最大有效位数16位
4=smallfloat 8位有效位数的浮点型
5=decimal(x,y) 生成x位精度的存储体,x为有效位数。不指定时默认为16位。
6=serial 表中插入行时自动指定的数字值,指定值比前一个最大值大1,每个表只能有一个
7=date 日期型,默认MM/DD/YYYY,可自定义。这个值实际上是整数,表示从1899年12月31日算起的天数。
17=int8 存储8个字节的整数值,范围从-(2^63-1)到(2^63-1)
8=money(x,y) 生成x位精度的存储体,x为有效位数,y为小数点位数。不指定时x默认为16位,y默认为2位。
10=datetime a to b 日期时间型,可定义格式。a和b值表示要存放的值的细节。a值表示最大单位,默认为year,b值表示最小单位。时间单位包括MONTH,DAY,HOUR,MINUTE和FRACTION
11=byte 二进制数据,最大2的31次方字节
12=text 文本型,最大2的31次方字节
13=varchar 存储变长字符型,最长255字节
14=interval 表示时间跨度的值
15=nchar(n) 同char,但允许GLS应用程序的不同排序顺序
16=nvarchar 同varchar,但允许GLS应用程序的不同排序顺序
18=serial8 存储范围同INT8的大顺序整数
19=set(e) 存储元素的非排序集合,所有元素都具有同一类型e;不允许重复值
20=multiset(e) 存储元素的非排序集合,所有元素都具有同一类型e;允许重复值
21=list(e) 存储元素的排序集合,所有元素都具有同一类型e;允许重复值
22=row 存储已命名或未命名行类型
40=Varying-length opaque type 存储用户定义的数据类型,其内部结构对于数据库服务器不透明,即不可存取
41=Fixed-length opaque type 存储用户定义的数据类型,其内部结构对于数据库服务器不透明,即不可存取
43=lvarchar 存储变长字符串,最大32739个字节
44=boolean 存储布尔值true和false
BLOB 以随机存取块的形式存储二进制数据
CLOB 以随机存取块的形式存储文本数据
三、oracle概念和术语
oracle数据库系统是一个复杂的软件系统。如果不了解其内部的结构原理及关系,就不可能设计和编写出高质量的应用软件系统,也不可能管理好一个复杂的应用系统。为了给以后章节的打好基础,本章简要给出 ORACLE 8 /ORACLE8i数据库系统结构的描述。
1 术语
数据库块(BLOCK)
ORACLE 数据库中的最小存储和处理单位,包含块本身的头信息数据或PL/SQL代码。
ORACLE 块的大小是可以在安装时选择“自定义安装”来指定,也可以在CREATE DATABASE创建数据库实例时指定。其最小为2K,最大可达为64K。
瓶颈(Bottleneck)
指限制系统性能的部件。
面向对象的关系数据库
具有关系数据库的全部功能,同时又支持面向对象的数据库,称作面向对象关系数据库系统。Oracle7是一种功能完备的关系数据库系统;oracle8是一种面向对象的关系数据库系统。
数据在线分析处理(OLAP)
是一种能以快速、交互、方便的方式洞察数据情况的技术。如Oracle Express,Cognos(加拿大)的Power Play, Business Objects公司的Business Object 等。
多线程(MTS)
本文关键:play123456的linux 学习笔记(又开始更新了!)
相关方案
- 如何重新配置XFree86…
- 1.网友文章:一Linux系统…
- php +javascript…
- 惠普互联网接入服务器全线产品详…
- 系统安装初步之分割区(Part…
- Linux管理员手册(1)--…
- LPI资格认证测验的组成…
- HPBbluestoneMid…
- EAP-TLS on Free…
- 无意中在一论坛看见这篇文章,觉…
- perl附录(1)…
- 系统安装初步之开机选择程式…
- 交大『云观CD-ROMIII』…
- 周岁献礼:快速搭建Time S…
- Linux管理员手册(3)--…
- 认识SlackwareLinu…
- 惠普中、小企业商务网站解决方案…
- LPI资格认证测验Level1…
- 认识SlackwareLinu…
- iptables HOWTO(…