文档库 最新最全的文档下载
当前位置:文档库 › Oracle 与 ArcSDE的几何对象类型的差别

Oracle 与 ArcSDE的几何对象类型的差别

Oracle 与 ArcSDE的几何对象类型的差别
Oracle 与 ArcSDE的几何对象类型的差别

Oracle 与ArcSDE的几何对象类型的差别

ORACLE数据库简介:

ORACLE 是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器(CLIENT/SERVER)体系结构的数据库之一。其主要的特点有:

1、ORACLE7.X以来引入了共享SQL和多线索服务器体系结构。这减少了ORACLE的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。

2、提供了基于角色(ROLE)分工的安全保密管理。在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。

3、支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等。

4、提供了与第三代高级语言的接口软件PRO*系列,能在C,C++等主语言中嵌入SQL 语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵。加上它有许多优秀的前台开发工具如POWER BUILD、SQL*FORMS、VISIA BASIC 等,可以快速开发生成基于客户端PC 平台的应用程序,并具有良好的移植性。

5、提供了新的分布式数据库能力。可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。

ORACLE数据库在物理上是存储于硬盘的各种文件。它是活动的,可扩充的,随着数据的添加和应用程序的增大而变化;在逻辑上是由许多表空间构成。主要分为系统表空间和非系统表空间。非系统表空间内存储着各项应用的数据、索引、程序等相关信息。我们准备上马一个较大的ORACLE应用系统时,应该创建它所独占的表空间,同时定义物理文件的存放路径和所占硬盘的大小。

ArcSDE简介:

ArcSDE,即数据通路,是ArcGIS的空间数据引擎,它是在关系数据库管理系统(RDBMS)中存储和管理多用户空间数据库的通路。从空间数据管理的角度看,ArcSDE是一个连续的空间数据模型,借助这一空间数据模型,可以实现用RDBMS管理空间数据库。在RDBMS 中融入空间数据后,ArcSDE可以提供空间和非空间数据进行高效率操作的数据库服务。ArcSDE采用的是客户/服务器体系结构,所以众多用户可以同时并发访问和操作同一数据。ArcSDE还提供了应用程序接口,软件开发人员可将空间数据检索和分析功能集成到自己的应用工程中去。

ArcSDE是ArcGIS与关系数据库之间的GIS通道。它允许用户在多种数据管理系统中管理地理信息,并使所有的ArcGIS应用程序都能够使用这些数据。

ArcSDE是多用户ArcGIS系统的一个关键部件。它为DBMS提供了一个开放的接口,允许ArcGIS在多种数据库平台上管理地理信息。这些平台包括Oracle,Oracle with Spatial/Locator,Microsoft SQL Server, IBM DB2,和Informix。

如果你的ArcGIS需要使用一个可以被大量用户同步访问并编辑的大型数据库,ArcSDE 为你提供必要的功能。通过ArcSDE你的ArcGIS可以在DBMS中轻而易举地管理一个共享的、多用户的空间数据库。以下列出了ArcSDE的具体功能。

1.高性能的DBMS通道ArcSDE是多种DBMS的通道。它本身并非一个关系数据库或数据存储模型。它是一个能在多种DBMS平台上提供高级的、高性能的GIS数据管理的接口。

2.开放的DBMS支持ArcSDE允许你在多种DBMS中管理地理信息:Oracle, Oracle with

Spatial or Locator, Microsoft SQL Server, Informix, 以及IBM DB2.

3.多用户ArcSDE为用户提供大型空间数据库支持,并且支持多用户编辑。

4.连续、可伸缩的数据库ArcSDE可以支持海量的空间数据库和任意数量的用户,直至DBMS的上限。

5.GIS工作流和长事务处理GIS中的数据管理工作流,例如多用户编辑、历史数据管理、check-out/check-in以及松散耦合的数据复制等都依赖于长事务处理和版本管理。ArcSDE 为DBMS提供了这种支持。

6.丰富的地理信息数据模型ArcSDE保证了存储于DBMS中的矢量和栅格几何数据的高度完整性。这些数据包括,矢量和栅格几何图形、支持x, y, z和x, y, z, m的坐标、曲线、立体、多行栅格、拓扑、网络、注记、元数据、空间处理模型、地图、图层,等等。

7.灵活的配置ArcSDE通道可以让用户在客户端应用程序内或跨网络、跨计算机地对应用服务器进行多种多层结构的配置方案。ArcSDE支持Windows,UNIX,Linux等多种操作系统。

Oracle 与ArcSDE的几何对象类型差别为:

Oracle Spatial主要通过元数据表、空间数据字段(即sdo_Geometry字段)和空间索引来管理空间数据,并在此基础上提供一系列空间查询和空间分析的程序包,让用户进行更深层次的GIS应用开发。Oracle Spatial使用空间字段sdo_Geometry存储空间数据。

1.1 SDO_GEOMETRY字段详解

Oracle Spatial的空间数据都存储在空间字段sdo_Geometry中,理解sdo_Geometry是编写Oracle Spatial程序的关键。sdo_Geometry是按照Open GIS规范定义的一个对象,其原始的创建方式如下所示:

CREATE TYPE sdo_geometry AS OBJECT (SDO_GTYPE NUMBER,

SDO_SRID NUMBER,

SDO_POINT SDO_POINT_TYPE,

SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY,

SDO_ORDINATES SDO_ORDINATE_ARRAY);

ArcSDE是空间数据库引擎,也可以说是一个中间件,它的作用是GIS客户端(arcmap,arctatalog等)访问或操作空间数据库时的一个通道,ArcSDE本身不会存储文件,而是将空间信息存储在dbms中(如sql server,oracle,db2等)。从空间数据管理的角度来看,SDE 可看成是一个连续的空间数据模型,借助这一模型,可将空间数据加入到关系数据库管理系统(RDBMS)中去。它允许向关系数据库中加入空间数据、提供地理要素的空间位置及形状等信息。

Linux系统(X64)安装Oracle11g完整安装教程

Linux系统(X64)安装Oracle11g完整安装图文教程1修改操作系统核心参数(Root用户) 1)修改用户的SHELL的限制,修改 /etc/security/ 文件 输入命令:vi /etc/security/,按i键进入编辑模式,将下列内容加入该文件。 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 编辑完成后按Esc键,输入“:wq”存盘退出 2)修改/etc/login 文件,输入命令:vi /etc/login,按i键进入编辑模式,将下列内容加入该文件。 session required /lib/security/ session required 编辑完成后按Esc键,输入“:wq”存盘退出 3)修改linux内核,修改/etc/文件,输入命令: vi /etc/ ,按i键进入编辑模式,将下列内容加入该文件 = 6815744 = 1048576 = 2097152 = 48 = 4096 = 250 32000 100 128 = 1024 65500 = 4194304 = 4194304 = 262144 = 1048576 编辑完成后按Esc键,输入“:wq”存盘退出。 注意: = 9000 65500 网络默认9000 65500 4)要使 /etc/ 更改立即生效,执行以下命令。输入:sysctl -p显示如下: linux:~ # sysctl -p = 1 = 1 = 6815744 = 1048576 = 2097152 = 48 = 4096 = 250 32000 100 128 = 1024 65500

oracle数据类型及其隐式转换

备注:转换时要根据给定的string设定正确的格式掩码,否则 Ora_01840:input value is not long enough for date format. Ora_01862:the numeric value does not match the length of the format item. 3) to_number 字符值->数字值 语法:to_number (string,[format mask],[nls_parameters]) 参数:string 待转换的字符值 format mask:可选参数 格式掩码同to_char转换为number时相同。 备注:如果使用较短的格式掩码就会返回错误。 例如: to_number(123.56,’999.9’)返回错误。 在oracle中,如果不同的数据类型之间关联,如果不显式转换数据,则它会根据以下规则对数据进行隐式转换 1) 对于INSERT和UPDATE操作,oracle会把插入值或者更新值隐式转换为字段的数据类型。假如id列的数据类型为number update t set id='1'; -> 相当于update t set id=to_number('1'); insert into t(id) values('1') -> insert into t values(to_number('1')); 2) 对于SELECT语句,oracle会把字段的数据类型隐式转换为变量的数据类型。 如假设id列的数据类型为varchar2 select * from t where id=1; -> select * from t where to_number(id)=1; 但如果id列的数据类型为number,则 select * from t where id='1'; -> select * from t where id=to_number('1');(参考下文) 3) 当比较一个字符型和数值型的值时,oracle会把字符型的值隐式转换为数值型。 如假设id列的数据类型为number select * from t where id='1'; -> select * from t where id=to_number('1');

Oracle11g及PLSQL安装过程1.0.

一、Oracle 下载 注意Oracle分成两个文件,下载完后,将两个文件解压到同一目录下即可。路径名称中,最好不要出现中文,也不要出现空格等不规则字符。 官方下地址: https://www.wendangku.net/doc/163657292.html,/technetwork/database/enterprise-edition/downloads/i ndex.html以下两网址来源此官方下载页网。 win 32位操作系统下载地址: https://www.wendangku.net/doc/163657292.html,/otn/nt/oracle11g/112010/win32_11gR2_databas e_1of2.zip https://www.wendangku.net/doc/163657292.html,/otn/nt/oracle11g/112010/win32_11gR2_databas e_2of2.zip win 64位操作系统下载地址: https://www.wendangku.net/doc/163657292.html,/otn/nt/oracle11g/112010/win64_11gR2_databas e_1of2.zip https://www.wendangku.net/doc/163657292.html,/otn/nt/oracle11g/112010/win64_11gR2_databas e_2of2.zip 二、Oracle安装 1. 解压缩文件,将两个压缩包一起选择,鼠标右击-> 解压文件如图 2.两者解压到相同的路径中,如图:

两个压缩包没有关联,要全部解压,解压之后文件的大小为2.12G。 3. 到相应的解压路径上面,找到可执行安装文件【setup.exe 】双击安装。如图: 4. 安装第一步:配置安全更新,这步可将自己的电子邮件地址填写进去(也可以不填写,只是收到一些没什么用的邮件而已)。取消下面的“我希望通过My Oracle Support接受安全更新(W)”。如图:(不要填写自己的电子邮件地址,否则它会自动联网,可能会拖慢安装进度)

Oracle数据库的空间数据类型

Oracle数据库中空间数据类型随着GIS、CAD/CAM的广泛应用,对数据库系统提出了更高的要求,不仅要存储大量空间几何数据,且以事物的空间关系作为查询或处理的主要内容。Oracle数据库从9i开始对空间数据提供了较为完备的支持,增加了空间数据类型和相关的操作,以及提供了空间索引功能。 Oracle的空间数据库提供了一组关于如何存储,修改和查询空间数据集的SQL schema与函数。通过MDSYS schema规定了所支持的地理数据类型的存储、语法和语义,提供了R-tree空间数据索引机制,定义了关于空间的相交查询、联合查询和其他分析操作的操作符、函数和过程,并提供了处理点,边和面的拓扑数据模型及表现网络的点线的网络数据模型。 Oracle中各种关于空间数据库功能主要是通过Spatial组件来实现。从9i版本开始,Oracle Spatial空间数据库组件对存储和管理空间数据提供了较为完备的支持。其主要通过元数据表、空间数据字段(即SDO_GEOMETRY字段)和空间索引来管理空间数据,并在此基础上提供一系列空间查询和空间分析的函数,让用户进行更深层次的GIS应用开发。Oracle Spatial使用空间字段SDO_GEOMETRY存储空间数据,用元数据表来管理具有SDO_GEOMETRY字段的空间数据表,并采用R树索引和四叉树索引技术来提高空间查询和空间分析的速度。 1、元数据表说明。 Oracle Spatial的元数据表存储了有空间数据的数据表名称、空间字段名称、空间数据的坐标范围、坐标参考信息以及坐标维数说明等信息。用户必须通过元数据表才能知道ORACLE数据库中是否有Oracle Spatial的空间数据信息。一般可以通过元数据视图(USER_SDO_GEOM_METADATA)访问元数据表。元数据视图的基本定义为: ( TABLE_NAME V ARCHAR2(32), COLUMN_NAME V ARCHAR2(32), DIMINFO MDSYS.SDO_DIM_ARRAY, SRID NUMBER

oracle11g安装图解

Oracle11G安装图解 进入oracle安装界面,我们选择高级安装 出现选择安装类型,我们选择企业版,至于语言我们不用选择

Oracle 基目录:用于安装各种与ORACLE软件和配置有关的文件的顶级目录。 软件位置:用于存放安装具体ORACLE产品的主目录和路径。在此我们使用默认的配置。 在此ORACLE会选择剩余空间最多的盘作为基目录和安装目录的所在盘。 可以输入一个电子邮件或是metalink接收安全问题通知,在此我直接输入一个 电子邮件,当然也可以是metalink用户信息!

在此是因为我的内存不足,所以会报此提示,那么我们在此调整内存,以满足条件后再继续安装。

装到这个界面,这个问题直接选是,不会影响之后的安装,出现这个问题的原因是因为我的电脑没连接到网络 在此选择安装数据库。 如果是“配置自动存储管理”,则自动存储管理(ASM)可用来自动化和简化对数据文件、控制文件和日志文件的优化布局。自动存储管理(ASM)将每个文件切割成许多小扩展文件,并将它们平均分散在一个磁盘组的所有磁盘上。一旦自动存储管理(ASM)磁盘组建立,创建和删除文件的时候,Oracle数据库都会从磁盘组自动分配存储空间。如果是“仅安装软件”,则只安装ORACLE软件,

在安装之后还需要再运行数据库配置助手创建数据库。 一般用途/事务处理:适合各种用途的预配置数据库。 数据仓库:创建适用于特定需求并运行复杂查询环境。常用于存储并快速访问大量记录数据。 高级:安装结束后运行ORACLE DBCA后,用户才可以配置数据库。 在此我们选择“一般用途/事务处理” 步骤8:单独下一步后,出现“指定数据库配置选项”

Oracle_11g 安装图解(详细版)

Oracle 11g安装图文攻略 呵呵,花了一个多小时,左右把11g安装折腾好了。其中折腾SQL Developer 花了好长时间,总算搞定了。好了,先总结下安装步骤,希望给后面的童鞋提高安装效率。呵呵。 一、Oracle 下载 注意Oracle分成两个文件,下载完后,将两个文件解压到同一目录下即可。路径名称中,最好不要出现中文,也不要出现空格等不规则字符。 官方下地址: https://www.wendangku.net/doc/163657292.html,/technetwork/database/enterprise-edition/downloads/ index.html以下两网址来源此官方下载页网。 win 32位操作系统下载地址: https://www.wendangku.net/doc/163657292.html,/otn/nt/oracle11g/112010/win32_11gR2_database_ 1of2.zip https://www.wendangku.net/doc/163657292.html,/otn/nt/oracle11g/112010/win32_11gR2_database_ 2of2.zip win 64位操作系统下载地址: https://www.wendangku.net/doc/163657292.html,/otn/nt/oracle11g/112010/win64_11gR2_database_ 1of2.zip https://www.wendangku.net/doc/163657292.html,/otn/nt/oracle11g/112010/win64_11gR2_database_ 2of2.zip 二、Oracle安装 1. 解压缩文件,将两个压缩包一起选择,鼠标右击 -> 解压文件如图

Oracle 11g安装及验证图文攻略

服务器磁盘分配 一般C盘100G装系统、D盘80G放ORACLE基目录和软件位置、E盘剩余空间(最大)放数据库目录。 Oracle 11g安装图文攻略 注意用administrator用户登录 一、Oracle 下载注意Oracle分成两个文件,下载完后,将两个文件解压到同一目录下即可。路径名称中,最好不要出现中文,也不要出现空格等不规则字符。二、Oracle安装1. 解压缩文件,将两个压缩包一起选择,鼠标右击- 解压文件如图2.两者解压到相同的 一、Oracle 下载 注意Oracle分成两个文件,下载完后,将两个文件解压到同一目录下即可。路径名称中,最好不要出现中文,也不要出现空格等不规则字符。 二、Oracle安装 1. 解压缩文件,将两个压缩包一起选择,鼠标右击-> 解压文件如图 2.两者解压到相同的路径中,如图:

3. 到相应的解压路径上面,找到可执行安装文件【setup.exe 】双击安装。如图: 4. 安装第一步:配置安全更新,这步可将自己的电子邮件地址填写进去(也可以不填写,只是收到一些没什么用的邮件而已)。取消下面的“我希望通过My Oracle Support接受安全更新(W)”。如图:

5. 安全选项,直接选择默认创建和配置一个数据库(安装完数据库管理软件后,系统会自动创建一个数据库实例)。如图:

6. 系统类,直接选择默认的桌面类就可以了。(若安装到的电脑是,个人笔记本或个人使用的电脑使用此选项) 服务器类直接点击这里跳转如图:

7. 典型安装。重要步骤。建议只需要将Oracle基目录更新下,目录路径不要含有中文或其它的特殊字符。全局数据库名可以默认,且口令密码,必须要牢记。密码输入时,有提示警告,不符合Oracel建议时不用管。(因Oracel建议的密码规则比较麻烦,必须是大写字母加小写字母加数字,而且必须是8位以上。麻烦,可以输入平常自己习惯的短小密码即可) 如图:

oracle数据库浅析number类型的值

number数据内部存储时,以变长的数组来存放,数组里的每个元素占一个字节,最多20个元素。内部代码为2。number数据的存放格式为:<[length]>,sign bit/exponent,digit1,digit2,…,digit20 sign bit/exponent这部分叫做exponent byte。 exponent byte包括三部分: ?sign bit:这表示高位bit,也就是128。并且我们有: 1. 如果小于128,则数值为负数。 2. 如果大于等于128,则数值为正数或0。 ?offset,始终为65 ?exponent:其范围从-65到62。该部分的值是基于100而 进行的科学计数法。 为0时比较特殊,就只有sign bit而没有offset和exponent,也就是128。比如: SQL> select dump(0) from dual; DUMP(0) ---------------- Typ=2 Len=1: 128 来看一个非0的值: SQL> select dump(25,16) from dual; DUMP(25,16) ------------------ Typ=2 Len=2: c1,1a 则exponent byte为c1,也就是 SQL> select to_number('c1','xx'),to_number('1a','xx') from dual; TO_NUMBER('C1','XX') TO_NUMBER('1A','XX') -------------------- -------------------- 193 26 而193=128+65+0,也就是sign bit为128,offset为65,exponent为0。 同时,oracle存储时,用1表示0,2表示1,依此类推。也就是说用显示的值减1就是实际的值。如下所示: SQL> select dump(1,16) from dual;

Oracle基础知识大全,

课程目标: 1. 了解数据库系统在项目开发中的地位 2. 了解目前主流数据库系统 3. 熟练掌握查询命令 4. 熟练掌握数据操作方式 5. 熟练使用数据库内置函数 6. 掌握pl/sql程序设计语法结构 7. 掌握视图 8. 掌握存储过程 9. 掌握用户自定义函数 10. 掌握触发器 了解: 1.数据库组件: 1.1 实施应用集群 1.2 Oracle OLAP 1.3 数据挖掘 1.4 应用程序接口 1.5 网络组件 1.6 SQL Plus 1.7 企业管理器OEM

2. 几个版本间的差异: 2.1 增加了服务器参数文件SPFILE 2.2 使用了OMF免去了手工管理数据库文件的繁琐 2.3 支持多种数据库块大小 2.4 会话可以自动调整PGA的大小 2.5 引入了列表分区 课程内容: 1. 操作数据之前的准备工作: 1.1. 要保证有一个数据库: 1.2. 要保证创建一个表空间 create tablespace hbjr datafile 'E:\dbs\hbjr.dbf' size 100M; 1.3. 要创建一个用户,用户默认的表空间就是你创建的表空间 create user hbjr identified by orcl default tablespace hbjr; //授权限: grant dba to hbjr; 1.4. 用户/密码登录:

2. 表名/列字段名起名规范: 2.1 使用常规字母和数字 2.2 长度不要超过30 2.3 表名/列名不能重复 2.4 不能使用oracle的保留字 3. 数据类型 3.1 char:定长,存储单位--字节(bite) 3.2 varchar2:变长,存储单位--字节 3.3 nchar:定长,存储单位--字符 3.4 nvarchar2:变长,存储单位--字符 3.5 date:日期类型,7个字节,存储着--世纪,年,月,日,时,分,秒 3.6 timestamp:日期类型,11个字节,存储着--世纪,年,月,日,时,分,秒,毫秒 3.7 number:数据类型(数值类型) 3.8 clob:大字段类型,适合存储纯文本信息(例如:*.txt 文件)

Oracle 11g 64位下载及安装教程(图文并茂)

1、下载Oracle 11g R2 for Windows的版本 下载地址:https://www.wendangku.net/doc/163657292.html,/technetwork/database/enterprise-edition/downloads/index.html 其中包括两个压缩包:win64_11gR2_database_1of2.zip,win64_11gR2_database_2of2.zip 2、将两个压缩包解压到同一个目录下,即“database”,然后单击解压目录下的“setup.exe”文件: 3、在出现的“配置安全更新”窗口中,取消“我希望通过My Oracle Support接受安全更新”,单击“下一步”:

4、在“安装选项”窗口中,选择“创建和配置数据库”,单击“下一步”: 5、在“系统类”窗口中,选择“桌面类”,单击“下一步”:

6、在“典型安装”窗口中,选择Oracle的基目录,选择“企业版”和“默认值”并输入统一的密码为:Oracle11g,单击“下一步”: 7、在“先决条件检查”窗口中,单击“下一步”:

8、在“概要”窗口中,单击“完成”,即可进行安装: 9、出现的安装过程如下:

数据库创建完成后,会出现如下“Database Configuration Assistant”界面: 选择“口令管理”,查看并修改以下用户:

(1)普通用户:SCOTT(密码:tiger) (2)普通管理员:SYSTEM(密码:manager) (3)超级管理员:SYS(密码:change_on_install) 修改完成后,单击“确定”。 10、在“完成”窗口中,单击“关闭”即可。 安装完成界面中的内容: Enterprise Manager Database Control URL - (orcl) : https://localhost:1158/em 数据库配置文件已经安装到C:\app\Administrator,同时其他选定的安装组件也已经安装到C:\app\Administrator\product\11.2.0\dbhome_1。 Oracle完成安装后,会在系统中进行服务的注册,在注册的这些服务中有以下两个服务必须启动,否则Oracle将无法正常使用: (1)OracleOraDb11g_home1TNSListener:表示监听服务,如果客户端要想连接到数据库,此服务必须打开。在程序开发中该服务也要起作用。 (2)OracleServiceORCL:表示数据库的主服务,命名规则:OracleService数据库名称。此服务必须打开,否则Oracle根本无法使用。 附: A、32位Oracle 11g Client(win32_11gR2_client.zip)的安装注意点: 在选择安装类型时,选择“管理员”,如下图:

Oracle数据库基本数据类型

oracle基本数据类型

oracle 数据库中讨论char ,varchar ,varchar2 数据类型! 这3种字符串数据类型是我们使用最多的,我们在数据库设计时到底该怎么使用了? 首先我们先来分析3个数据类型的说明: 1。char CHAR的长度是固定的,最长2000个字符。 2。varchar 和 varchar2 可以肯定的是oracle中目前是可以使用varchar数据类型的,但他们的区别我查了不少资料也没有找到一个准确的答案最常见的说话是说oracle中的varchar只是varchar2的别名也就是同义词。 其次也有人认为varchar是最大长度为2000的可变字符串(和sql server中的varchar一致),而varchar2最大长度为4000。 知道了他们的特点我们就来讨论下使用区别 1.char和varchar、varchar2 由于varchar和varchar2用途类似,我们先来讨论char和他们的使用区别: varchar和varchar2比char节省空间,在效率上比char会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的

‘以空间换效率’。 varchar和varchar2虽然比char节省空间,但是如果一个varchar和varchar2列经常被修改,而且每次被修改的数据的长度不同,这会引起‘行迁移’(Row Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用char代替varchar和varchar2会更好一些。 当然还有一种情况就是象身份证这种长度几乎不变的字段可以考虑使用char,以获得更高的效率。 2。varchar和varchar2 这里就进入重点了,前面的区别我们在sql server中我们已经基本了解了,大家可能都知道,最多也就是复习下,但oracle增加了一个varchar2类型,是大家以前所没有用到过的。 因为oracle保证在任何版本中该数据类型向上和向下兼容,但不保证varchar,还有其他数据中一般都有varchar这个数据类型。 所以我得出了以下结论: 如果想在oracle新版本的数据库兼容就不要用varchar,如果想和oracle 之外其他数据库兼容就不要用varchar2。 ORACLE中的数据类型分类 ORACLE中的数据类型不可谓不多,下面把我这两天来的学习体会写一下吧! 1、字符数据类型:包括我CHAR,VARCHAR2,LONG。 CHAR型可以存储字母数字值,这种数据类型的 列长度可以是1到2000个字节。如果未指明,则默认其占用一个字节,如果用户输入的值小于指定的长度,数据库则用空格填充至固定长度。 VARCHAR2型其实就是VARCHAR,只不过后面多了一个数字2,VARCHAR2就是VARCHAR的同义词,也称别名。数据类型大小在1至4000个字节,但是和CHAR不同的一点是:当你定义了VARCHAR2长度为30,但是你只输入了10个字符,这时VARCHAR2不会像CHAR一样填充,在数据库中只有10具字节。

Linux操作系统中Oracle11g数据库安装步骤详细图解

Linux 操作系统中Oracle11g 数据库安装步骤详细图解 来源:Ask Oracle 社区/栏目:基础教程/时间:2013-03-19/阅读:5009次 Linux 操作系统中Oracle11g 数据库安装规范 一 :数据库安装软件(含补丁)的下载说明 Oracle 数据库安装软件获得途径: 1、可以通过ftp 的方式上传至服务器 2、Oracle 官方网站下载:(从11.2.0.2开始ORACLE 不再提供升级patch ,只提供完整的安装包) 二:数据库 Linux 操作系统中Oracle11g 数据库安装规范 一:数据库安装软件(含补丁)的下载说明 Oracle 数据库安装软件获得途径: 1、可以通过ftp 的方式上传至服务器 2、Oracle 官方网站下载:(从11.2.0.2开始ORACLE 不再提供升级patch ,只提供完整的安装包) 二:数据库版本规定 本安装规范所针对的Oracle 数据库版本为:Oracle 11.2.0.3.0 三:安装环境需求 1、系统硬件需求 系统必须满足下列最小硬件要求 ? 内存需求 ? 系统架构要求 ? 磁盘空间需求 ? 显示需求 硬件系统基本需求参照表 2、操作系统版本及补丁矩阵 Oracle 11gR2要求OS 至少为RHEL4.7,内核为Kernel 2.6.9 作为生产系统,我们要求使用RHEL 5.6 64位版本,即: Red Hat Enterprise Linux AS release 5 Update 5 x86_64 需要安装以下RPM 软件包(加32bit 括号注解的是该软件包32位版本,对应同名未加注解的则是该软件包64位版本。在64位版本平台上,两种版本都要安装): 1 2 3 4 binutils-2.17.50.0.6 compat-libstdc++-33-3.2.3 compat-libstdc++-33-3.2.3 (32 bit) elfutils-libelf-0.125

Oracle与DB2数据类型的分类对应说明

Oracle与DB2数据类型的分类对应说明首先,通过下表介绍与DB2/400数据类型之间的对应关系,是一对多的关系,具体采用哪种对应关系,应具体问题具体分析。 注意事项: Oracle中的DATE含有年、月、日、时、分、秒,它和DB2/400中的DATE不相互对应,DB2/400中的DATE只有年、月、日,TIME类型含有时、分、秒,因此日期和时间类型要进行转换,

NUMBER Oracle中的NUMBER类型可以对应DB2/400中的很多类型,这种对应关系要依赖于Oracle中number将用于保存何种类型的数据,是整型还是带有小数位的实型数据,另外还要考虑类型所占用的存储空间,例如:SAMLLINT占2 byte, INTEGER占4 byte; BIGINT占8 byte;Oracle 中的NUMBER类型所占用的存储空间要根据它的定义而定,例如缺省精度下的NUMBER有38个数字长,占用20 byte的空间。具体的对应关系请参照上表。 ROW and LOB类型 DB2/400提供VARCHAR和CLOB与ORACLE中的RAW和LONG RAW相对应。ORACLE也支持大对象:BLOB、CLOB、CLOB和NCLOB, ORACLE中的BLOB和CLOB可以提供4GB的空间,而DB2/400中的BLOB和CLOB只能存放2GB的数据;DB2/400中的DBCLOB与ORACLE中的NCLOB 2GB相对应。Oracle 中的BFILE数据类型用于管理数据库以外的二进制数据,数据库中的表将指向数据库外部的存放的BFILE文件,DB2/400也提供一个类似的数据类型DATALINK相对应。 ROWID Oracle ROWIND虚拟列用于对表中的某一列进行唯一标示,DB2/400中也有这样的数据类型ROWID,它与ORACLE中的ROWID的功能相似。DB2/400中的ROWID可以存放40 byte的数据用来唯一标示表中的每一行,它没有ccsid属性,这些信息中没有关于datafile、 block 或row的信息。 例如: CREATE TABLE LIBRARYNAME/ORDERS2 (ORDERNO ROWID, SHIPPED_TO VARCHAR (36) , ORDER_DATE DATE) ORDERNO的数据类型为ROWID,用于存放订单号,每当插入一行时,系统自动生成一个值,存放进这个字段。可以用OPERATION NAVIGATOR查看它的内容。

浅谈Oracle中的CHAR与NCHAR数据类型 .

CHAR与NCHAR在Oracle数据库是常用的类型,不过两种数据类型是互相不兼容的,这里大概简要谈一下这2种数据类型吧。 在Oracle中,CHAR类型是一种固定长度的字符串类型,最大长度是2000个byte,在这里要注意了,是2000个byte,并不是2000个字符的意思。1个字符在Oracle中可能是1个byte到4个byte不等,这个要看数据库的设置了。这个是数据库中有一个参数 NLS_LENGTH_SEMANTICS来决定的。CHAR类型有一个特点,就是字符长度总是固定的,也就是说,如果你声明了一个COLUMN类型为CHAR(10),如果你只插入了1个字符,那么系统也会自动在这个字符的右边补上9个空格,Oracle的CHAR类型中,补空格是在右侧补的。但是如果你插入了11个字符,那么就会系统出错,而不会自动截成10个字符。 NCHAR数据类型可能不是经常见到,不过在许多数据库设计中也有了。NCHAR数据类型是专为UNICODE字符而设计的,而且只能插入UNICODE字符串,NCHAR也是最大长度为2000个byte,不过每个字符占多少个byte,是由数据库的国际字符集决定的。同样的,如果插入字符不足定义的长度,比如NCHAR(10)类型中只插入了1个字符,系统会自动在右侧补充9个空格。 NCHAR和CHAR之间是不能直接互相兼容的,而是要通过Oracle的函数或者语法进行转换,比如说从NCHAR转成CHAR是要用TO_CHAR函数进行转换,而CHAR转换为NCHAR,比如说'ABCDE'这个CHAR字符串,则要通过N'ABCDE'来进行表示,也就是说前面要有一个N这个特殊字符,表示是NCHAR类型。

最详细SUSE11上Oracle 11g安装步骤图解新手教程

最详细SUSE11上Oracle 11g安装步骤图解新手教程 启动已经安装好的Suse Enterprise 11 第一件事我要把oracle11g软件给那过去。之前的文章我会采用filezilla去传输,现在我用的是局域网共享。如果对这方面不清楚的可以参考ubuntu 10.04与XP实现网络共享 启动suse的samba服务,service smb start (注:suse里操作samba的命令: # service smb start # /etc/rc.d/smb restart # /etc/init.d/smb restart)

输入 smb://192.168.1.102(ubuntu的IP),输入密码进入 在Ubuntu上共享oracle11g 直接拷贝到suse里面。

开始检测所需RPM包。按照官方文档里的要求,suse需要的rpm包有: SUSE Linux Enterprise Server 11 The following packages (or later versions) must be installed: binutils-2.19 gcc-4.3 gcc-c++-4.3 glibc-2.9 glibc-devel-2.9 ksh-93t libstdc++33-3.3.3 libstdc++43-4.3.3_20081022 libstdc++43-devel-4.3.3_20081022 libaio-0.3.104 libaio-devel-0.3.104 libgcc43-4.3.3_20081022 libstdc++-devel-4.3 make-3.81 sysstat-8.1.5

mysql与oracle数据类型对照

MySQL Data Type Oracle Data Type Java BIGINT NUMBER(19, 0)https://www.wendangku.net/doc/163657292.html,ng.Long BIT RAW byte[] BLOB BLOB, RAW byte[] CHAR CHAR https://www.wendangku.net/doc/163657292.html,ng.String DATE DATE java.sql.Date DATETIME DATE java.sql.Timestamp DECIMAL FLOAT (24)java.math.BigDecimal DOUBLE FLOAT (24)https://www.wendangku.net/doc/163657292.html,ng.Double DOUBLE PRECISION FLOAT (24)https://www.wendangku.net/doc/163657292.html,ng.Double ENUM https://www.wendangku.net/doc/163657292.html,ng.String FLOAT FLOAT https://www.wendangku.net/doc/163657292.html,ng.Float INT NUMBER(10, 0) https://www.wendangku.net/doc/163657292.html,ng.Integer INTEGER NUMBER(10, 0) https://www.wendangku.net/doc/163657292.html,ng.Integer LONGBLOB BLOB, RAW byte[] LONGTEXT CLOB, RAW https://www.wendangku.net/doc/163657292.html,ng.String MEDIUMBLOB BLOB, RAW byte[] MEDIUMINT NUMBER(7, 0) https://www.wendangku.net/doc/163657292.html,ng.Integer MEDIUMTEXT CLOB, RAW https://www.wendangku.net/doc/163657292.html,ng.String NUMERIC NUMBER REAL FLOAT (24) SET VARCHAR2 https://www.wendangku.net/doc/163657292.html,ng.String

SMALLINT NUMBER(5, 0) https://www.wendangku.net/doc/163657292.html,ng.Integer TEXT VARCHAR2, CLOB https://www.wendangku.net/doc/163657292.html,ng.String TIME DATE java.sql.Time TIMESTAMP DATE java.sql.Timestamp TINYBLOB RAW byte[] TINYINT TINYINT https://www.wendangku.net/doc/163657292.html,ng.Boolean TINYTEXT https://www.wendangku.net/doc/163657292.html,ng.String VARCHAR VARCHAR2, CLOB https://www.wendangku.net/doc/163657292.html,ng.String YEAR YEAR java.sql.Date(日期 设为2月1日点)

Oracle与DB2数据类型的分类对应说明

Oracle 与 DB2 数据类型的分类对应说明
首先,通过下表介绍与 DB2/400 数据类型之间的对应关系,是一对多的关系,具体采用 哪种对应关系,应具体问题具体分析。 注意事项: Oracle 中的 DATE 含有年、 日、 分、 它和 DB2/400 中的 DATE 不相互对应, 月、 时、 秒, DB2/400 中的 DATE 只有年、月、日,TIME 类型含有时、分、秒,因此日期和时间类型要进行转换, 请参照下表。
Oracle
DB2/400 注意事项 如果只使用 MM/DD/YYY,那 么使用 DATE 类型。 l 如果只使用 HH:MM:SS, 那么使用 TIME 类型。 l 如果要使用日期和时间, 则使用时间戳类型 (TIMESTAMP) l 可以使用 Oracle 中的 TO_CHAR()函数来取 DATE 的字串来分别与 DB2/400 的 DATE、TIME 相匹配。 若 n<=32766,则使用 DB2/400 中的 CHAR 类型、 VARCHAR 若 n<=32K,则使用 DB2/400 中的 CHAR 类型、VARCHAR。 l 若 32K=< n <=2GB,则使 用 CLOB。
Oracle 数据 注意事 DB2 UDB 数据类型 类型 项
DATE
DATE TIME TIMESTAMP l
CHAR(n) VARCHAR2(n) n<=4000 VARCHAR(n) l
LONG
n<=2GB
VARCHAR(n) CLOB(n) l
ROW& LONG ROW
若 n<=32K, 则使用 CHAR(n) FOR BIT DATA CHAR(n) FOR BIT DATA 或 n<=255 VARCHAR(n) FOR BIT DATA VARCHAR(n) FOR BIT DATA BLOB(n) l l 若 n<=2GB, 则使用 BLOB(n) n<=4GB BLOB(n) n<=4GB CLOB(n) 若 n<=2GB, 则使用 BLOB(n) 若 n<=2GB, 则使用 CLOB(n)
BLOB CLOB

oracle11g单机安装过程

Linux环境安装oracle11g单机 1、创建用户和组 groupaddoinstall #创建用户组oinstall groupadd dba #创建用户组dba useradd -g oinstall -g dba -m oracle #创建用户oracle,并加入oinstall和dba 组 passwd oracle #设置用户oracle 的登录密码,根据提示输入两次密码 2、创建oracle安装目录及设置目录所有者 mkdir -p /oracle/oraInventory #oracle 数据库配置目录 chown -R oracle:oinstall /oracle #设置目录所有者为oinstall用户组的oracle 用户 chown -R oracle:oinstall /oracle/oraInventory 3、修改系统内核 vim /etc/sysctl.conf #编辑,在最后添加以下代码 net.ipv4.icmp_echo_ignore_broadcasts = 1 fs.file-max = 6815744 #设置最大打开文件数 fs.aio-max-nr = 1048576 kernel.shmall = 2097152 #共享内存的总量,8G 内存设置:2097152*4k/1024/1024 kernel.shmmax = 2147483648 #最大共享内存的段大小 kernel.shmmni = 4096 #整个系统共享内存端的最大数 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4 端口范围 net.core.rmem_default = 262144 net.core.rmem_max= 4194304 net.core.wmem_default= 262144 net.core.wmem_max= 1048576 4、oracle 用户限制,提高软件运行性能 vim /etc/security/limits.conf #在末尾添加以下代码 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 5、配置oracle环境变量 vim /home/oracle/.bash_profile #在最后添加以下代码 export ORACLE_BASE=/oracle #oracle 数据库安装目录 export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #oracle 数据库路径 export ORACLE_SID=orcl #oracle 启动数据库实例名 export ORACLE_UNQNAME=$ORACLE_SID export PATH=$ORACLE_HOME/bin:/user/sbin:$PATH #添加系统环境变量 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH #添加系统环境变量source /home/oracle/.bash_profile #使设置立刻生效 6、安装oracle 数据库需要的软件包关闭防火墙 yum install gcc* gcc-* gcc-c++-* glibc-devel-* glibc-headers-* compat-libstdc* libstdc*

浅谈oracle复合数据类型

浅谈oracle复合数据类型 --本文档可以直接拷贝运行。 /* oracle复合数据类型 PL/SQL有两种复合数据结构:记录和集合。记录由不同的域组成,集合由不同的元素组成。*/ /* 一、记录类型 类似C语言中的结构,有两种定义方式:显式定义和隐式定义。 */ create table test ( id varchar2(20), mc varchar2(60) ); insert into test values('111','11111'); insert into test values('222','22222'); insert into test values('333','33333'); insert into test values('444','44444'); insert into test values('555','55555'); insert into test values('666','66666'); commit; /* 1.1、显示定义记录 */ set serverout on declare type t_record is record ( id test.id%type, mc test.mc%type ); var_record t_record; counter number default 0;

begin for row_test in (select id,mc from test) loop counter := counter + 1; var_record.id := row_test.id; var_record.mc := row_test.mc; dbms_output.put_line('var_record:'||var_record.id||'---'||var_record.mc); dbms_output.put_line('row_test:'||row_test.id||'---'||row_test.mc); dbms_output.put_line('================loop '||counter||' times.'); end loop; exception when others then dbms_output.put_line(sqlcode||sqlerrm); end; / /*有一些PL/SQL指令在使用隐式定义记录时没有使用%ROWTYPE属性,比如游标FOR循环或触发器中的ld 和:new记录。*/ /* 1.2、隐式定义记录 */ 隐式定义记录中,我们不用描述记录的每一个域,在声明记录变量时使用%ROWTYPE命令定义与数据库表,视图,游标有相同结构的记录。 declare t_record1 test%rowtype; cursor cur_test(v_id in varchar2) is select id,mc from test where id <= v_id; t_record2 cur_test%rowtype; begin for row_test in cur_test('333') loop t_record1.id := row_test.id; t_record1.mc := row_test.mc; t_record2.id := row_test.id; t_record2.mc := row_test.id; dbms_output.put_line('t_record1:'||t_record1.id||'---'||t_record1.mc); dbms_output.put_line('t_record2:'||t_record2.id||'---'||t_record2.mc); dbms_output.put_line('row_test:'||row_test.id||'---'||row_test.mc); dbms_output.put_line('================loop '||cur_test%rowcount||' times.'); end loop;

相关文档
相关文档 最新文档