oracle数据库导出是出现的问题

oracle数据库导出是出现的问题,第1张

数据库结构和空间管理

一个ORACLE数据库是数据的集合,被处理成一个单位。一个ORACLE数据库有一个物理结构和一个逻辑结构。

物理数据库结构(physical database structure)是由构成数据库的 *** 作系统文件所决定。每一个ORACLE数据库是由三种类型的文件组成:数据文件、日志文件和控制文件。数据库的文件为数据库信息提供真正的物理存储。

逻辑数据库结构是用户所涉及的数据库结构。一个ORACLE数据库的逻辑结构由下列因素决定:

l 一个或多个表空间

l 数据库模式对象(即表、视图、索引、聚集、序列、存储过程)

逻辑存储结构如表空间(dataspace)、段(segment)和范围将支配一个数据库的物理空间如何使用。模式对象(schema object)用它们之间的联系组成了一个数据库的关系设计。

1) 物理结构

(1) 数据文件

每一个ORACLE数据库有一个或多个物理的数据文件(data file)。一个数据库的数据文件包含全部数据库数据。逻辑数据库结构(如表、索引)的数据物理地存储在数据库的数据文件中。数据文件有下列特征:

l 一个数据文件仅与一个数据库联系。

l 一旦建立,数据文件不能改变大小

l 一个表空间(数据库存储的逻辑单位)由一个或多个数据文件组成。

数据文件中的数据在需要时可以读取并存储在ORACLE内存储区中。例如:用户要存取数据库一表的某些数据,如果请求信息不在数据库的内存存储区内,则从相应的数据文件中读取并存储在内存。当修改和插入新数据时,不必立刻写入数据文件。为了减少磁盘输出的总数,提高性能,数据存储在内存,然后由 ORACLE后台进程DBWR决定如何将其写入到相应的数据文件。

(2) 日志文件

每一个数据库有两个或多个日志文件(redo log file)的组,每一个日志文件组用于收集数据库日志。日志的主要功能是记录对数据所作的修改,所以对数据库作的全部修改是记录在日志中。在出现故障时,如果不能将修改数据永久地写入数据文件,则可利用日志得到该修改,所以从不会丢失已有 *** 作成果。

日志文件主要是保护数据库以防止故障。为了防止日志文件本身的故障,ORACLE允许镜象日志(mirrored redo log),以致可在不同磁盘上维护两个或多个日志副本。

日志文件中的信息仅在系统故障或介质故障恢复数据库时使用,这些故障阻止将数据库数据写入到数据库的数据文件。然而任何丢失的数据在下一次数据库打开时,ORACLE自动地应用日志文件中的信息来恢复数据库数据文件。

(3) 控制文件

每一ORACLE数据库有一个控制文件(control file),它记录数据库的物理结构,包含下列信息类型:

l 数据库名;

l 数据库数据文件和日志文件的名字和位置;

l 数据库建立日期。

为了安全起见,允许控制文件被镜象。

每一次ORACLE数据库的实例启动时,它的控制文件用于标识数据库和日志文件,当着手数据库 *** 作时它们必须被打开。当数据库的物理组成更改时,ORACLE自动更改该数据库的控制文件。数据恢复时,也要使用控制文件。

2) 逻辑结构

数据库逻辑结构包含表空间、段、范围(extent)、数据块和模式对象。

(1) 表空间

一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间(TABLESPACE)。一个表空间可将相关的逻辑结构组合在一起。DBA可利用表空间作下列工作:

l 控制数据库数据的磁盘分配。

l 将确定的空间份额分配给数据库用户。

l 通过使单个表空间在线或离线,控制数据的可用性。

l 执行部分数据库后备或恢复 *** 作。

l 为提高性能,跨越设备分配数据存储。

数据库、表空间和数据文件之间的关系如下图所示:

Database

SYSTEM DATA

Tablespace Tablespace

DTATAFILE1

(2MB) DATAFILE2

(2MB) DATAFILE3

(2MB)

Driver1 Driver2

。每个数据库可逻辑划分为一个或多个表空间

。每一个表空间是由一个或多个数据文件组成,该表空间物理地存储表空间中全部逻辑结构的数据。DBA可以建立新的表空间,可为表空间增加数据文件或可删除数据文件,设置或更改缺省的段存储位置。

每一个ORACLE数据库包含有一个名为SYSTEM的表空间,在数据库建立是自动建立。在该表空间中总包含有整个数据库的数据字典表。最小的数据库可只需要SYSTEM表空间。该表空间必须总是在线。表和存储的PL/SQL程序单元(过程、函数、包和触发器)的全部存储数据是存储在SYSTEM表空间中。如果这些PL/SQL对象是为数据库建的,DBA在SYSTEM表空间中需要规划这些对象所需要的空间。

表空间利用增加数据文件扩大表空间,表空间的大小为组成该表空间的数据文件大小的和。

DBA可以使ORACLE数据库中任何表空间(除SYSTEM表空间外)在线(ONLINE)或离线(OFFLINE)。表空间通常是在线,以致它所包含的数据对数据库用户是可用的。当表空间为离线时,其数据不可使用。在下列情况下,DBA可以使其离线。

。使部分数据不可用,而剩余的部分允许正常存取

。执行离线的表空间后备

。为了修改或维护一应用,使它和它的一组表临时不可用。

包含有正在活动的回滚段的表空间不能被离线,仅当回滚段不正在使用时,该表空间才可离线。

在数据字典中记录表空间的状态,在线还是离线。如果在数据库关闭时一表空间为离线,那么在下次数据库装配和重新打开后,它仍然保持离线。

当出现某些错误时,一个表空间可自动地由在线改变为离线。通过使用多个表空间,将不同类型的数据分开,更方便DBA来管理数据库。

ORACLE 数据库中一表空间是由一个或多个物理数据文件组成,一个数据文件只可与一个表空间想联系。当为一表空间建立一数据文件时,ORACLE建立该文件,分配指定的磁盘空间容量。在数据文件初时建立后,所分配的磁盘不包含任何数据。表空间可以在线或离线。在ORACLE中还允许单独数据文件在线或离线。

(2) 段、范围和数据块

ORACLE通过段、范围和数据块逻辑数据结构可更细地控制磁盘空间的使用。

段(SEGMENT)包含表空间中一种指定类型的逻辑存储结构,是由一组范围组成。在ORACLE数据库中有几种类型的段:数据段、牵引段、回滚段和临时段。

数据段:对于每一个非聚集的表有一数据段,表的所有数据存放在该段。每一聚集有一个数据段,聚集中每一个表的数据存储在该段中。

索引段:每一个索引有一索引段,存储索引数据。

回滚段:是由DBA建立,用于临时存储要撤消的信息,这些信息用于生成读一致性数据库信息、在数据库恢复时使用、回滚未提交的事务。

临时段:当一个SQL语句需要临时工作区时,由ORACLE建立。当语句执行完毕,临时段的范围退回给系统。

ORACLE对所有段的空间分配,以范围为单位。

范围

一个范围(EXTENT)是数据库存储空间分配的一个逻辑单位,它由连续数据块所组成。每一个段是由一个或多个范围组成。当一段中间所有空间已完全使用时,ORACLE为该段分配一个新的范围。

为了维护的目的,在数据库的每一段含有段标题块(segment header block)说明段的特征以及该段中的范围目录。

数据块

数据块(data block)是ORACLE管理数据文件中存储空间的单位,为数据库使用的I/O的最小单位,其大小可不同于 *** 作系统的标准I/O块大小。

数据块的格式:

公用的变长标题

表目录

行目录

未用空间

行数据

(3) 模式和模式对象

一个模式(schema)为模式对象(scehma object)的一个集合,每一个数据库用户对应一个模式。模式对象为直接引用数据库数据的逻辑结构,模式对象包含如表、视图、索引、聚集、序列、同义词、数据库链、过程和包等结构。模式对象是逻辑数据存储结构,每一种模式对象在磁盘上没有一个相应文件存储其信息。一个模式对象逻辑地存储在数据库的一个表空间中,每一个对象的数据物理地包含在表空间的一个或多个数据文件中。

表(table)为数据库中数据存储的基本单位,其数据按行、列存储。每个表具有一表名和列的集合。每一列有一个列名、数据类型、宽度或精度、比例。一行是对应单个记录的列信息的集合。

视图

一个视图(view)是由一个或多个表(或其他视图)中的数据的一种定制的表示,是用一个查询定义,所以可认为是一个存储的查询(stored query)或是一个虚表(virtual table)。视图可在使用表的许多地方使用。

由于视图是由表导出的,视图和表存在许多类似,视图象表最多可定义254列。视图可以被查询,而在修改、插入或删除时具有一定的限制,在视图上执行的全部 *** 作真正地影响视图的基本表中的数据,受到基本表的完整性约束和触发器的限制。

视图与表不同,一个视图不分配任何存储空间,视图不真正地包含数据。由查询定义的视图相应于视图引用表中的数据。视图只在数据字典中存储其定义。

引入视图有下列好处:

。通过限制对表的行预定义集合的存取,为表提供附加的安全性

。隐藏数据复杂性。

。为用户简化命令

。为基本表的数据提供另一种观点。

。可将应用隔离基本表定义的修改

。用于不用视图无法表示的查询。

。可用于保存复杂查询。

聚集

聚集(cluster)是存储表数据的可选择的方法。一个聚集是一组表,将具有同一公共列值的行存储在一起,并且它们经常一起使用。这些公共列构成聚集码。例如:EMP表各DEPT表共享DEPTNO列,所以EMP表和DEPT表可聚集在一起,聚集码的列为DEPTNO列,该聚集将每个部门的全部职工行各该部门的行物理地存储在同一数据块中。

索引

索引(index)是与表和聚集相关的一种选择结构。索引是为提高数据检索的性能而建立,利用它可快速地确定指定的信息。ORACLE索引为表数据提供快速存取路径。索引适用于一范围的行查询或指定行的查询。

索引可建立在一表的一列或多列上,一旦建立,由ORACLE自动维护和使用,对用户是完全透明的。索引是逻辑地和物理地独立于数据,它们的建立或删除对表没有影响,应用可继续处理。索引数据的检索性能几乎保持常数,而当一表上存在许多索引时,修改、删除和插入 *** 作的性能会下降。

索引有唯一索引各非唯一索引。唯一索引保证表中没有两行在定义索引的列上具有重复值。ORACLE在唯一码上自动地定义唯一索引实施UNIQUE完整性约束。

组合索引是在表的某个列上所建立的一索引。组全索引可加快SELECT语句的检索速度,在其WHERE子句中可引用组合索引的全部或主要部分 。所以在定义中给出列的次序,将经常存取的或选择最多的列放在首位。

在建立索引时,将在表空间自动地建立一索引段,索引段空间分配和保留空间的使用受下列方式控制:

索引段范围的分配常驻该索引段的存储参数控制。

其数据块中未用空间可受该段的PCTFREE参数设置所控制。

序列生成器

序列生成器(sequence generator)产生序列号。在多用户环境下该序列生成器特别有用,可生成各返回序列号而不需要磁盘I/O或事务封锁。

序列号为ORACLE整数,最多可有38个数字。一个序列定义指出一般信息:序列的名字、上升或下降、序列号之间间距和其它信息。对所有序列的确的定义以行存储在SYSTEM表空间中的数据字典表中,所以所有序列定义总是可用。由引用序列号的SQL语句使用序列号,可生成一个新的序列号或使用当前序列号。一旦在用户会话中的SQL语句生成一序列号,该序列号仅为该会话可用。序列号生成是独立于表,所以同一序列生成器可用于一个和多个表。所生成序列号可用于生成唯一的主码。

ActiveServerPages,ASP0126(0x80004005)-->找不到包含文件

MicrosoftOLEDBProviderforODBCDrivers(0x80040E21)-->sql语句出错(数据类型不匹配或表名(字段名)错误或表处于编辑状态,或表不存在于conn打开的数据库中)

MicrosoftOLEDBProviderforODBCDrivers(0x80040E14)-->sql语句出错(字段名错误,或数据类型不匹配)

MicrosoftOLEDBProviderforODBCDrivers(0x80040E07)-->sql语句出错(要插入或更新的字段的类型与变量数据类型不匹配)

MicrosoftOLEDBProviderforODBCDrivers(0x80040E57)-->sql语句出错(要插入或更新的数据溢出)

MicrosoftOLEDBProviderforODBCDrivers(0x80040E10)-->sql语句出错(update字段名或要更新的数据类型错误)

MicrosoftOLEDBProviderforODBCDrivers(0x80004005)-->sql语句出错(要插入或更新的字段的数值不能为空值)

MicrosoftOLEDBProviderforODBCDrivers(0x80004005) -->打开数据库出错,没有在指定目录发现数据库

MicrosoftOLEDBProviderforODBCDrivers(0x80040E37)-->没有发现表

MicrosoftVBscript运行时错误(0x800A000D)-->错误引用rs变量(rs对像已关闭或未定义)

MicrosoftVBscript运行时错误(0x800A01C2)-->vbscript脚本错误(vbscript语句出错)

MicrosoftVBscript运行时错误(0x800A0006)-->vbscript脚本错误(溢出错误)

MicrosoftVBscript编译器错误(0x800A040E)-->缺少loop

MicrosoftVBscript编译器错误(0x800A03EA)-->缺少if或endif

MicrosoftVBscript编译器错误(0x800A03EE)--> 语句未结束(缺少")")

MicrosoftVBscript编译器错误(0x800A03F6)-->if语句出错(缺少endif)

MicrosoftVBscript运行时错误(0x800A005B)-->缺少set

MicrosoftVBscript运行时错误(0x800A0005)-->变量未定义

MicrosoftVBscript编译器错误(0x800A03F9)-->if语句缺少then

MicrosoftVBscript编译器错误(0x800A0411)-->dim语句定义错误

MicrosoftVBscript编译器错误(0x800A0408)-->sql语句错误()

Microsoft VBScript 运行时错误 (0x800A01B6)错误原因:set rs=servercreate你少了 set

ADODBRecordset(0x800A0BB9)-->sql语句出错(sql语句或conn语句未定义或对一个rs属性进行赋值时发生错误)

ADODBRecordset(0x800A0CC1)-->rs对像出错(rs对像本身不存在或错误地引用了一个不存在的字段名)

ADODBRecordset(0x800A0BCD)-->rs对像出错(记录集中没有记录却对记录集进行 *** 作)

ADODBRecordset(0x800A0E78)-->rs对像出错(记录集不存在,缺少rsopen语句)

ADODBRecordset(0x800A0CC1) -->rs对像出错(引用了一个不存在的字段名)

ADODBRecordset(0x800A0E7D)-->conn定义错误

ADODBRecordset(0x800A0CB3)-->数据库以只读方式打开,无法更新数据

如果 VBScript 语句结构违反了一个或多个 VBScript 脚本语言语法规则,就会产生 VBScript 语法错误。

错误通常在执行程序前,编译程序时产生。 以下是53个语法错误:

错误编号 描述

十进制 十六进制 说明

1001 800A03E9 内存不足

1002 800A03EA 语法错误

1003 800A03EB 缺少“:”

1005 800A03ED 需要 '('

1006 800A03EE 需要 ')'

1007 800A03EF 缺少“]”

1010 800A03F2 需要标识符

1011 800A03F3 需要 '='

1012 800A03F4 需要 'If'

1013 800A03F5 需要 'To'

1014 800A03F6 需要 'End'

1015 800A03F7 需要 'Function'

1016 800A03F8 需要 'Sub'

1017 800A03F9 需要 'Then'

1018 800A03FA 需要 'Wend'

1019 800A03FB 需要 'Loop'

1020 800A03FC 需要 'Next'

1021 800A03FD 需要 'Case'

1022 800A03FE 需要 'Select'

1023 800A03FF 需要表达式

1024 800A0400 需要语句

1025 800A0401 需要语句的结束

1026 800A0402 需要整数常数

1027 800A0403 需要 'While' 或 'Until'

1028 800A0404 需要 'While,'、 'Until,' 或语句未结束

1029 800A0405 需要 'With'

1030 800A0406 标识符太长

1031 800A0407 无效的数

1032 800A0408 无效的字符

1033 800A0409 未结束的串常量

1034 800A040A 未结束的注释

1037 800A040D 无效使用关键字 'Me'

1038 800A040E 'loop' 没有 'do'

1039 800A040F 无效 'exit' 语句

1040 800A0410 无效 'for' 循环控制变量

1041 800A0411 名称重定义

1042 800A0412 必须为行的第一个语句

1043 800A0413 不能赋给非Byval参数

1044 800A0414 调用 Sub 时不能使用圆括号

1045 800A0415 需要文字常数

1046 800A0416 需要 'In'

1047 800A0417 需要 'Class'

1048 800A0418 必须在一个类的内部定义

1049 800A0419 在属性声明中需要 Let , Set 或 Get

1050 800A041A 需要 'Property'

1051 800A041B 参数数目必须与属性说明一致

1052 800A041C 在类中不能有多个缺省的属性/方法

1053 800A041D 类初始化或终止不能带参数

1054 800A041E Property Let 或 Set 至少应该有一个参数

1055 800A041F 不需要的 'Next'

1056 800A0420 只能在 ‘Property’ 或 ’Function’ 或 ’Sub’ 上指定 ’Default’

1057 800A0421 说明 'Default' 必须同时说明 'Public' "

1058 800A0422 只能在 Property Get 中指定 'Default'

VBScript 运行时错误

如果 VBScript 脚本执行系统无法实施的 *** 作,则会产生 VBScript 运行时错误。只有在运行脚本、为变量表达式赋值或

分配内存时,才会产生 VBScript 运行时错误。 以下是65个运行时错误:

错误编号 描述

十进制 十六进制 说明

5 800A0005 无效过程调用或参数

6 800A0006 溢出

7 800A0007 内存不足

9 800A0009 下标越界

10 800A000A 该数组为定长的或临时被锁定

11 800A000B 被零除

13 800A000D 类型不匹配

14 800A000E 字符串空间溢出

17 800A0011 无法执行请求的 *** 作

28 800A001C 堆栈溢出

35 800A0023 未定义 Sub 或 Function

48 800A0030 加载 DLL 错误

51 800A0033 内部错误

52 800A0034 坏文件名或数

53 800A0035 文件未找到

54 800A0036 坏文件模式

55 800A0037 文件已经打开

57 800A0039 设备I/O错误

58 800A003A 文件已经存在

61 800A003D 磁盘空间已满

62 800A003E 输入超出文件尾

67 800A0043 文件太多

68 800A0044 设备不可用

70 800A0046 权限禁用

71 800A0047 磁盘未准备好

74 800A004A 不能用不同的驱动器重新命名

75 800A004B 路径/文件访问错误

76 800A004C 路径未找到

91 800A005B 未设置对象变量

92 800A005C For 循环未初始化

94 800A005E 非法使用 Null

322 800A0142 不能建立所需临时文件

424 800A01A8 需要对象

429 800A01AD ActiveX 部件无法创建对象

430 800A01AE 类不支持自动化

432 800A01B0 在自动化 *** 作中未找到文件名或类名

438 800A01B6 对象不支持该属性或方法

440 800A01B8 Automation错误

445 800A01BD 对象不支持此 *** 作

446 800A01BE 对象不支持指定的参数

447 800A01BF 对象不支持当前的区域设置

448 800A01C0 未找到命名参数

449 800A01C1 参数不可选

450 800A01C2 错误的参数个数或无效的参数属性值

451 800A01C3 对象不是一个集合

453 800A01C5 指定的dll函数未找到

455 800A01C7 代码源锁错误

457 800A01C9 这个键已经是本集合的一个元素关联

458 800A01CA 变量使用了一个 VBScript 中不支持的自动化(Automation)类型

462 800A01CE 远程服务器不存在或不能访问

481 800A01E1 无效

500 800A01F4 变量未定义

501 800A01F5 违法的分配

502 800A01F6 脚本对象不安全

503 800A01F7 对象不能安全初始化

504 800A01F8 对象不能安全创建

505 800A01F9 无效的或不合格的引用

506 800A01FA 类未被定义

507 800A01FB 发生异常

5016 800A1398 需要正则表达式对象

5017 800A1399 正则表达式中的语法错误

5018 800A139A 错误的数量词

5019 800A139B 在正则表达式中需要 ']'

5020 800A139C 在正则表达式中需要 ')'

5021 800A139D 字符集越界

32811 800A802B 元素未找到

Private Sub Command1_Click()

Dim dFile As String

Dim SaveFileDialog1 As SaveFileDialog

If (SaveFileDialog1ShowDialog() = WindowsFormsDialogResultOK) Then

dFile = SaveFileDialog1FileName

If dFile <> "" Then

Open dFile For Output As #1

Print #1, Text1Text

Close #1

End If

End If

End Sub

把CommonDialog换成SaveFileDialog

Adodc1RecordsetAddNew

Adodc1RecordsetFields("设备编号") = Text1Text

Adodc1RecordsetFields("设备名称") = Text2Text

Adodc1RecordsetFields("规格型号") = Text3Text

Adodc1RecordsetFields("制造厂商") = Text4Text

Adodc1RecordsetFields("使用日期") = DTPicker1Value

Adodc1RecordsetFields("变动日期") = DTPicker2Value

Adodc1RecordsetFields("变动种类") = Combo1Text

Adodc1RecordsetFields("调出单位") = Text5Text

Adodc1RecordsetFields("调入单位") = Text6Text

Adodc1RecordsetFields("备注") = Text7Text

Adodc1RecordsetUpdate

Adodc1Refresh

Private Sub Text1_Change()

Do While RecordsetEOF

Print "用户名: " & Recordset("用户名")Value & "密码: " & Recordset("密码")Value

RecordsetMoveNext

Loop

RecordsetClose

Do While RecordsetEOF

Print "用户名: " & Recordset("用户名")Value & "密码: " & Recordset("密码")Value

RecordsetMoveNext

Loop

RecordsetClose

End Sub

这里面的所有Recordset都没有指明对象啊?所以说缺少对象。换成 Data1Recordset看看

另外,你这段代码还有很多错误:

Do While RecordsetEOF

要改为:

Do Until Data1RecordsetEOF

或:

Do While Not Data1RecordsetEOF

还有

Dim Conn, Reco

Set Conn = CreateObject("ADODBConnection")

Set Reco = CreateObject("ADODBRecordset")

ConnOpen "Provider=MicrosoftJetOLEDB40;Data Source=F:\例子\Book\book_manage_dbmdb"

这几句貌似是完全多余的

另外,你的Data1控件DatabaseName属性设置了吗?

Text1_Change()里面的语句重复输入了两遍,难道是笔误?

总之,你这段代码要改的地方可能比正确的地方还多 ^_^

以上就是关于oracle数据库导出是出现的问题全部的内容,包括:oracle数据库导出是出现的问题、用天正2014版画桥架时出现致命错误怎么办、VB我在做一个简单的管理系统向通过command保存按钮来保存list1和text1,2,,3怎么弄简单点的方法,用数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9541416.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存