ORACLE的大字段分类
- 格式:docx
- 大小:20.30 KB
- 文档页数:12
1.Oracle数据库命名规范数据库命名规范总体上以“汉语拼音和常见英语单词相结合”的方式,汉语拼音即是采用每一个汉字拼音的第一个字母的方式。
英语单词采用整个英文单词或可以识别的英文单词缩写的方式。
数据库字段命名原则总统上同数据库命名,采用“汉语拼音和常见英语单词相结合”方式命名。
这里单独出来主要是强调本系统字段命名需要额外遵循如下规则:1)字段名称的唯一性:即同一含义的字段在整个系统范围内中必须有相同的字段名。
不能有类似一个表中的备注字段用“BeiZhu”,另一表中的备注却用“Remark”、“Desc”、“XXRemark”等。
2)字段含义唯一性:即系统同一字段名称必须有同一含义。
不能有类似“Name”在一个表中表单位名称,在另外一个表中表项目名称,这种情况需要加前缀区分。
3)所有字段名不能以SM开头,目的是避免与SuperMap保留字段前缀混淆4)空间表中:字段顺序以空间信息字段在前,属性信息字段在后原则。
5)属性表中:字段顺序以主次顺序设计,用于空间定位的字段放在最后原则。
1.1表属性规范1)表名前缀为Tbl_。
数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:tbl_pstn_detail。
表名称不能用双引号包含。
2)表分区名前缀为p。
分区名必须有特定含义的单词或字串。
例如:tbl_pstn_detail的分区p2004100101表示该分区存储2004100101时段的数据。
3)字段名字段名称必须用字母开头,采用有特征含义的单词或缩写,不能用双引号包含。
4)主键名前缀为PK_。
主键名称应是前缀+表名+构成的字段名。
如果复合主键的构成字段较多,则只包含第一个字段。
表名可以去掉前缀。
5)外键名前缀为FK_。
外键名称应是前缀+外键表名+主键表名+外键表构成的字段名。
表名可以去掉前缀。
1.2索引1)普通索引前缀为IDX_。
索引名称应是前缀+表名+构成的字段名。
如果复合索引的构成字段较多,则只包含第一个字段,并添加序号。
oracle的long类型和varchar2类型长数据类型(Long)和可变长度字符串类型(VARCHAR2)是Oracle数据库中常用的两种数据类型。
它们在存储和管理数据方面有着不同的特点和用途。
本文将详细讨论这两种数据类型的特点、用途和区别,希望能够帮助读者更好地理解和使用它们。
首先,让我们来了解一下长数据类型(Long)。
长数据类型是Oracle数据库中用于存储大型文本数据的一种数据类型。
它可以存储最大2GB的数据,适合存储大型文本文件、日志记录等需要大量存储空间的数据。
长数据类型在实际应用中通常用于存储文档、报表、日志等较大的数据。
与长数据类型相对应的是可变长度字符串类型(VARCHAR2)。
VARCHAR2是一种可变长度的字符串类型,可以存储0到4000个字符的数据。
它适合存储较小的文本数据,如用户输入的信息、产品描述、文章内容等。
VARCHAR2类型在实际应用中常用于存储用户输入的文本数据、产品描述、评论等。
长数据类型(Long)和可变长度字符串类型(VARCHAR2)在存储和管理数据方面有着不同的特点和用途。
长数据类型适合存储大型文本数据,但由于其性能较差,不支持索引等功能,因此在实际应用中使用较少。
而可变长度字符串类型(VARCHAR2)适合存储较小的文本数据,具有较好的性能和灵活性,因此在实际应用中使用较为广泛。
在实际应用中,长数据类型(Long)和可变长度字符串类型(VARCHAR2)的选择取决于数据的特点和需求。
如果需要存储大型文本数据,可以选择使用长数据类型;如果需要存储较小的文本数据,并且需要较好的性能和灵活性,可以选择使用可变长度字符串类型。
除了在存储和管理数据方面有所不同之外,长数据类型(Long)和可变长度字符串类型(VARCHAR2)在使用上也有一些区别。
在使用上,长数据类型通常用SELECT方式进行输出,而可变长度字符串类型可以用SELECT和PL/SQL方式进行输出。
字段类型中文说明限制条件其它说明CHAR 固定长度字符串最大长度2000 bytesV ARCHAR2 可变长度的字符串最大长度4000 bytes 可做索引的最大长度749NCHAR 根据字符集而定的固定长度字符串最大长度2000 bytesNV ARCHAR2 根据字符集而定的可变长度字符串最大长度4000 bytesDA TE 日期(日-月-年)DD-MM-YY(HH-MI-SS)经过严格测试,无千虫问题LONG 超长字符串最大长度2G(231-1)足够存储大部头著作RAW 固定长度的二进制数据最大长度2000 bytes 可存放多媒体图象声音等LONG RAW 可变长度的二进制数据最大长度2G 同上BLOB 二进制数据最大长度4GCLOB 字符数据最大长度4GNCLOB 根据字符集而定的字符数据最大长度4GBFILE 存放在数据库外的二进制数据最大长度4GROWID 数据表中记录的唯一行号10 bytes ********.****.****格式,*为0或1NROWID 二进制数据表中记录的唯一行号最大长度4000 bytesNUMBER(P,S) 数字类型P为整数位,S为小数位DECIMAL(P,S) 数字类型P为整数位,S为小数位INTEGER 整数类型小的整数FLOAT 浮点数类型NUMBER(38),双精度REAL 实数类型NUMBER(63),精度更高数据类型参数描述char(n) n=1 to 2000字节定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节)varchar2(n) n=1 to 4000字节可变长的字符串,具体定义时指明最大长度n,这种数据类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号。
如果数据长度没有达到最大值n,Oracle 8i会根据数据大小自动调节字段长度,如果你的数据前后有空格,Oracle 8i会自动将其删去。
oracle select clob字段内容-概述说明以及解释1.引言1.1 概述CLOB字段(Character Large Object)是一种用于存储大文本数据的Oracle数据库字段类型。
在数据库中,通常将CLOB字段用于存储大于4000个字符的文本数据,例如长篇文章、日志信息、XML文档等。
本文将重点讨论如何在Oracle数据库中查询CLOB字段的内容。
通过有效地查询CLOB字段,我们可以轻松地获取和操作大文本数据,从而更好地满足业务需求。
接下来,我们将详细介绍Oracle中如何查询CLOB字段内容,以及在查询过程中需要注意的事项。
通过学习本文内容,读者将更加了解如何有效地处理CLOB字段数据,提高数据库查询和管理的效率。
1.2文章结构文章结构部分主要介绍了本文的整体结构和内容安排。
首先,我们将引言部分介绍本文的背景和目的,引导读者了解本文的主题和意义。
接着,在正文部分我们将详细介绍什么是CLOB字段以及在Oracle中如何查询CLOB字段内容,同时提供查询过程中需要注意的事项。
最后,在结论部分我们将对本文进行总结,探讨CLOB字段的应用场景,以及展望未来可能的发展方向。
通过本文的结构安排,读者将能够全面了解和掌握如何查询Oracle中的CLOB字段内容。
1.3 目的:本文的目的在于帮助读者了解如何在Oracle数据库中查询CLOB字段的内容。
CLOB字段是一种专门用来存储大文本数据的字段类型,通常用于存储文档、日志、报告等内容较大的数据。
在实际应用中,我们经常需要查询CLOB字段的内容以便分析和处理,因此正确地查询和处理CLOB字段内容具有重要意义。
通过本文的阐述,读者将能够清楚地了解什么是CLOB字段、如何准确地查询CLOB字段内容以及在查询过程中需要注意的事项。
希望读者在阅读完本文后能够掌握查询CLOB字段内容的技巧,提高数据处理的效率和准确性。
2.正文2.1 什么是CLOB字段CLOB是Oracle数据库中一种用来存储大容量字符数据的数据类型,其全称为Character Large Object。
oracle数据库基本数据类型
Oracle数据库有许多基本数据类型,包括:
1. 字符型:
- CHAR:固定长度的字符型,最长可达2000个字节。
- VARCHAR2:可变长度的字符型,最长可达4000字节。
- CLOB:用于存储大量文本数据的字符型,最长可达4GB。
- NCHAR:固定长度的Unicode字符型,最长可达2000个字节。
- NVARCHAR2:可变长度的Unicode字符型,最长可达4000字节。
- NCLOB:用于存储大量Unicode文本数据的字符型,最长可达4GB。
2. 数值型:
- NUMBER:用于存储数值数据的类型,包括整数和浮点数。
- BINARY_FLOAT:用于存储单精度浮点数。
- BINARY_DOUBLE:用于存储双精度浮点数。
3. 日期和时间型:
- DATE:用于存储日期和时间信息。
- TIMESTAMP:用于存储日期、时间和时区信息。
4. 二进制型:
- RAW:用于存储二进制数据的类型,最长可达2000字节。
- BLOB:用于存储大量二进制数据的类型,最长可达4GB。
5. BOOLEAN型:用于存储布尔值(TRUE或FALSE)。
这些基本数据类型可以通过组合和修饰符进行扩展和定制。
oracle的大文本类型
Oracle数据库中支持大文本类型,即CLOB和NCLOB类型。
CLOB 类型用于存储长文本数据,最大长度为4GB,NCLOB则用于存储Unicode字符集的长文本数据,最大长度也为4GB。
CLOB类型的数据可以通过INSERT、UPDATE和SELECT语句进行操作。
需要注意的是,由于CLOB类型的数据比较大,所以需要使用LOB locator来访问和修改CLOB数据。
NCLOB类型与CLOB类型类似,只是它可以存储Unicode字符集的数据。
同样,NCLOB类型的数据也需要使用LOB locator来访问和修改。
在使用CLOB和NCLOB类型时,需要注意以下几点:
1. 在创建表时,需要指定该列的数据类型为CLOB或NCLOB。
2. 在插入数据时,需要使用“TO_LOB”函数将数据转换为LOB locator。
3. 在查询数据时,需要使用“DBMS_LOB.SUBSTR”函数来获取CLOB或NCLOB数据的子串。
4. 在更新数据时,需要使用“DBMS_LOB.WRITE”函数来修改CLOB 或NCLOB数据。
总之,大文本类型在Oracle数据库中是非常有用的数据类型,可以方便地存储和操作长文本数据。
但是,由于数据量较大,需要注意一些细节问题。
- 1 -。
oracle 数据库解析字段与解析内容详解文章标题:深度解析Oracle数据库中的字段解析与内容详解在Oracle数据库中,字段解析和内容详解是数据库设计和优化中极为重要的部分。
本文将从简单到复杂地分析这一主题,并通过多个方面全面评估,以帮助读者更深入地理解这一概念。
一、字段解析的概念和作用在数据库中,字段解析是指对于各种数据类型的字段进行分析和解释。
不同的数据类型有不同的解析方式,而正确的字段解析能够帮助数据库管理员和开发人员更好地理解和利用数据。
Oracle数据库中常见的字段类型包括数值型、字符型、日期型等,它们的解析方法会对数据的存储、查找和计算产生影响。
1. 数值型字段解析数值型字段的解析主要涉及数据的精度和范围,以及相关的计算规则和函数。
对于整型和浮点型数据,需要考虑到数据的取值范围和小数位数,以及在应用中可能出现的四舍五入或溢出问题。
2. 字符型字段解析字符型字段的解析涉及到字符编码、长度限制、字符集规则等方面。
在处理多语言和特殊字符时,正确的解析能够保证数据的完整性和可读性,同时也对数据的存储和索引产生影响。
3. 日期型字段解析日期型字段的解析需要考虑到日期格式、时区、日期运算等方面。
在数据分析和报表生成中,正确解析日期字段能够保证数据的一致性和准确性。
二、内容详解的重要性和实践方法除了字段解析外,内容详解也是数据库设计和优化中不可或缺的部分。
内容详解是对数据内容进行深入的分析和理解,包括数据的来源、意义、关联等方面。
通过内容详解,可以更好地发现数据的价值和潜在问题,为决策和业务分析提供支持。
1. 数据来源和质量在进行内容详解时,需要了解数据的来源,包括数据的采集、清洗、转换等过程。
同时也需要评估数据的质量,包括数据的完整性、一致性、准确性等方面。
2. 数据关联和分析内容详解还涉及到数据之间的关联和分析,包括数据的连接、聚合、过滤等操作。
通过内容详解,可以更好地理解数据之间的关系,为业务分析和决策提供支持。
正文:一、text字段的概念和作用在关系型数据库中,text字段通常用来存储大型文本数据,例如文章内容、邮件正文等。
由于这些文本数据的长度不固定,无法用普通的字符型字段来存储,因此需要使用text字段来解决这个问题。
二、oracle中的text字段在oracle数据库中,text字段是一种特殊的数据类型,用来存储大型文本数据。
在创建表的时候,可以使用"CREATE TABLE"语句来定义text字段,例如:CREATE TABLE article (id NUMBER,content CLOB);在上面的例子中,content字段的数据类型为CLOB,表示这是一个text字段,可以存储大型文本数据。
三、sqlserver中的text字段在sqlserver数据库中,text字段也是一种特殊的数据类型,用来存储大型文本数据。
与oracle类似,在创建表的时候可以使用"CREATE TABLE"语句来定义text字段,例如:CREATE TABLE article (id INT,content TEXT);在上面的例子中,content字段的数据类型为TEXT,同样表示这是一个text字段,可以存储大型文本数据。
四、oracle和sqlserver中text字段的用法比较1. 存储容量限制的不同:在oracle中,CLOB字段可以存储最大4GB 的数据,而在sqlserver中,TEXT字段可以存储最大2GB的数据。
因此在存储大型文本数据时,oracle的CLOB字段具有更大的容量限制。
2. 操作方法的不同:在oracle中,可以使用DBMS_LOB包中的函数来操作CLOB字段,例如通过DBMS_LOB.SUBSTR函数来截取部分文本数据;而在sqlserver中,可以使用SUBSTRING函数来截取部分文本数据。
3. 存储方式的不同:在oracle中,CLOB字段的数据是以特殊的方式存储在数据库中的,而在sqlserver中,TEXT字段的数据是以类似普通数据的方式存储在数据库中的。
文章主题:Oracle查字段类型与长度语句1. 概述在Oracle数据库中,了解字段的类型和长度是非常重要的。
它不仅有助于设计数据库表结构,也有助于数据类型的选择和程序的开发。
本文将介绍如何使用Oracle查询字段类型和长度的语句,并就此展开讨论。
2. 查询字段类型在Oracle中,我们可以使用DESCRIBE语句来查询表的结构信息,包括字段名、数据类型和长度。
DESCRIBE语句的使用方法如下:```DESCRIBE table_name;```这条语句将返回表的列名、数据类型和字段长度等信息。
通过该语句,我们可以快速查看表的结构,了解表中各个字段的类型和长度。
3. 数据类型及其长度在Oracle数据库中,常见的数据类型包括VARCHAR2、NUMBER、DATE、CLOB等。
每种数据类型都有其对应的长度限制,如VARCHAR2的最大长度为4000个字节,NUMBER的精度和小数位数可以自定义等。
在设计表结构时,需要根据实际情况选择合适的数据类型和长度,以节约存储空间和提高查询效率。
4. 示例假设我们有一个名为“employee”的表,其中有字段“emp_name”和“emp_salary”,现在我们需要查询这两个字段的类型和长度。
可以使用以下语句:```DESCRIBE employee;```执行以上语句后,将得到“employee”表的结构信息,包括“emp_name”和“emp_salary”的数据类型和长度。
在实际开发中,我们可以根据这些信息来确定字段的设计方案,保证数据的完整性和准确性。
5. 总结通过本文的介绍,我们了解了在Oracle中如何查询字段的类型和长度,以及数据类型及其长度的相关知识。
在实际开发中,对表结构的深入了解是非常重要的,它直接关系到数据的存储和操作效率。
我们应该充分利用数据库提供的工具和语句,来深入了解表的结构信息,为数据库设计和程序开发提供参考和支持。
6. 个人观点在日常的数据库开发中,我发现对表结构的理解和设计往往被忽视。
oracle的长字段类型在互联网技术的发展中,数据库系统扮演着不可或缺的角色。
而在众多数据库系统中,Oracle作为领先的关系型数据库管理系统(RDBMS),以其强大的功能和灵活性成为企业和开发者的首选。
在Oracle中,长字段类型是一项重要的功能,本文将深入探讨Oracle的长字段类型以及其在互联网应用中的应用场景。
首先,我们来了解Oracle中的长字段类型。
在Oracle中,长字段类型主要包括CLOB(Character Large Object)和BLOB(Binary Large Object)两种类型。
CLOB是用于存储大量文本数据的类型,可以存储最多4GB的Unicode字符数据。
而BLOB则是用于存储二进制数据的类型,可以存储最多4GB的二进制数据。
这两种类型在互联网应用中广泛应用于存储大量的文本内容、图片、音频、视频等多媒体数据。
在互联网商业中,长字段类型在多个领域都有广泛的应用。
首先是电子商务,在电子商务平台中,往往需要存储大量的商品描述、图文信息等,而CLOB类型的字段正好满足了这个需求。
另外,随着互联网上视频、音频等多媒体内容的快速发展,BLOB类型的字段也被广泛用于存储这些大型文件数据,例如在线音乐、视频分享平台等。
其次,在技术应用方面,长字段类型也有其独特的应用场景。
比如,在博客平台中,用户可以发布大量的文章,而这些文章通常会包含大量的文字和图片。
通过将文章内容存储在CLOB类型的字段中,可以方便地进行搜索与管理。
类似地,在社交媒体应用中,用户通常可以发布图片、视频和文字等内容,这些多媒体数据可以被存储在BLOB 类型的字段中,实现快速的存取与分享。
除了上述的应用场景,长字段类型还可以在许多其他领域发挥作用。
例如,医疗行业中的病历数据、新闻媒体中的文章内容、教育领域中的教学材料等都可以通过长字段类型进行存储。
总结起来,Oracle的长字段类型在互联网应用中具有广泛的应用场景。
oracle大字段问题0、LARGE OBJECTORACLE8中有4种LOB- BLOB:Binary Large Object- CLOB:Character Large Object- NCLOB:固定长度的多字节Character Large Object- BFILE:DB外部的二进制文件它们分为两类:内部LOB:存放在DB内部,包括BLOB,CLOB,BCLOB 外部文件:存放在DB外面,就是BFILE要注意的是ORACLE8不自动转换这些类型的数据。
1、LONG和LOB的比较LONG/LONG RAW LOB--------------------------------------------------表中只能由一个列可以有多列最大2G 最大4GSELECT返回值SELECT返回指针存放在DB内可以在DB的内或者外不支持OBJECT类型支持顺序存取随机存取--------------------------------------------------NCLOB不支持OBJECT类型LOB小于4000字节时是内部存放2、LOB解析LOB有两个不同的部分- LOB值:LOB代表的数据- LOB指针:LOB存放数据的位置LOB列内部不存放数据,而是LOB值的位置。
当创建内部LOB时,值存放在LOB SEGMENT中,指向OUT-OF-LIN数据的指针放在列中。
对外部LOB,只在列中存放位置。
3、内部LOB就是存放在DB内部的LOB,包括BLOB,CLOB,NCLOB。
它们可以是用户自定义的类型中的属性表中某列SQL 变量程序host变量PL/SQL中的变量、参数、返回值内部LOB可以使用ORACLE的并发机制、REDO LOG、RECOVERY 机制。
BLOB被ORACLE8解释为二进制位流,类似LONG RAW。
CLOB解释为单字节字符流NCLOB是固定的多字节字符流,基于DB NATIONAL字符集的字节长度。
例子:CREATE TYPE picture_typ AS OBJECT (image BLOB);CREATE TABLE person_tab( pname VARCHAR2(20),RESUME CLOB,picture picture_typ);上面的语句完成后,数据将存放在5个物理SEGMENT中。
- TABLE person_tab在缺省TABLESPACE,- RESUME存放的LOB SEGMENT- PICTURE存放的LOB SEGMENT- 标示RESUME存放位置的LOB INDEX SEGMENT- 标示PICTURE存放位置的LOB INDEX SEGMENTLOB INDEX是隐式创建的。
当INSERT或者OBJECT CACHE中的OBJECT刷新到SERVER时,LOB生成。
可以使用DBMS_LOB包和OCI来处理LOB。
当ROW删除时,相应的内部LOB也会删除。
UPDATE必须处理整个LOB值,不能UPDATE其中的一部分。
4、内部LOB的存储参数具体语法可以参见ORACLE文档,LOB ( lob项,...)STORE AS lob_segment_nameCHUNK integerPCTVERSION integerCACHENOCACHE LOGGING/NOLOGGINGTABLESPACE tablespace_nameSTORAGE storage子句INDEX INDEX字句lob_segment_name:缺省式LOB$nCHUNK:连续分配在一起的BLOCK数目,存放连续的LOB数据。
这些CHUNK的数据存放在LOB INDEX里面,使用内部LOB标示和LOB值作为键。
PCTVERSION:LOB一致读需要的系统空间。
一旦LOB申请超过PCTVERSION的值,ORACLE就会收旧的空间并REUSE之。
CACHE:使用SGA区的DB BUFFER CACHE处理LOB的READ/WRITE。
NOCACHE LOGGING:不使用SGA区的BUFFER,数据的改变纪录到REDO LOG。
存取LOB比较频繁时,使用CACHE存取LOB不频繁时,使用NOCACHENOCACHE NOLOGGING:不使用SGA区的BUFFER和REDO LOG INDEX子句INDEX lob_index_segtment_nameINITTRANS integerMAXTRANS integerTABLESPACE tablespace_nameSTORAGE storage子句如果没有设置LOB存储参数和INDEX STROAGE,则采用如下缺省值CHUNK=1 DB_BLOCKPCTVERSION=10NOCACHENOLOGGING例子:CREATE TABLE APARTMENTS (floor_plan BLOB,contract CLOB,name VARCHAR2(10))LOB (floor_plan, contract)STORAGE AS(STORAGE (INITIAL 100K NEXT 100K PCTINCREASE 0)CHUNK 10PCTVERSION 20NOCACHENOLOGGINGINDEX (INITIAL 100K NEXT 100K));5、内部LOB的并发LOB的读一致和其他ORACLE类型一样,但是它是在CHUNK级别上作VERSION的。
6、外部LOBORACLE8允许定义BFILE类型,可以把外部文件和BFILE对象连接起来,同时能提供BFILE的安全机制。
BFILE对处理不需要transaction控制的OS文件很有用处。
对BFILE的处理需要DBMS_LOB或者OCI。
BFILE必须是READ-ONLY的,文件应该放在ORACLE能存取的地方。
如果删除BFILE对象,外部文件并不删除。
例子:CREATE TABLE home_page(EMPLOYEE REF EMPLOYEE_TYP,LAST_UPDATE DATE,HOMEPAGE BFILE);CREATE TYPE personal_info_typ AS OBJECT( EMPLOYEE REF employee_typ,PICTURE BFILE,THUMBPRINT BFILE,REINAPRINT BFILE);其实在BFILE对应的列或者属性中存放的是BFILE的位置,即是物理文件的位置。
读BFILE不通过SGA.7、BFILE的安全ORACLE8提供安全机制。
文件必须和DB在一台机器上,读取不存在文件的timeout由os决定。
可以和内部LOB的读取方法一致,但是必须注意:文件的权限、文件系统空间限制、其他对文件的维护、OS允许的最大文件大小。
ORACLE8不对BFILE采取TRANSACTION的支持,ORACLE的BACKUO和RECOVERY也不支持BFILE。
8、目录DIRECTORY这是ORACLE为了管理BFILE引入的新元素,它指定SERVER文件系统的目录,可以把文件系统的目录抽象为数据库对象,更具有灵活性。
DIRECTORY由DBA建立,系统用户拥有,通过GRANT/REVOKE 来确定哪些用户有权限。
CREATE OR REPLACE DIRECTORY 目录名AS 路径名DROP DIRECTORY 目录名存取BFILE在如下情况时候产生异常:-用户没有操作DIRECTORY的权限-DIRECTORY所对应的物理目录不存在,或者没有存取该目录的权限。
-文件不存在文件和权限的检查是在文件存取时候检查的,创建时候并不报错。
不支持逻辑路径系统新增加了CREATE ANY DIRECTORY和DROP ANY DIRECTORY。
对DIRECTORY授权只有READ。
对CREATE DIRECTORY和GRANT READ ON DIRECTORY是可以AUDIT的。
8、DIRECTORY建立的原则DIRECTORY不要和DB DATAFILE在相同的目录下。
要有选择的赋予CREATE ANY DIRECTORY和DROP ANY DIRECTORY ROLE。
在建立之前要在OS级别上设置权限。
如果移植DB到其他机器,需要注意DIRECTORY的路径是否改变。
9、管理LOBORACLE 通类似文件操作一样的接口:DBMS_LOB, OCI8。
同时还有SQL语句的一些支持。
管理LOB的一般方法:1)CREATE/POPULATE 包含LOB的TABLE,2)在程序中DECLARE AND INITIALIZE LOB Locator3)用SELECT FOR UPDATE 锁定包含LOB的ROW,4)用DBMS_LOB或者OCI维护相关LOB值5)COMMIT管理BFILE的一般方法1)建立OS目录,授予ORACLE 用户READ的权限2)把文件放到该目录3)建立包含BFILE的TABLE4)建立DIRECTORY,用GRANT授权5)在TABLE中INSERT与文件相关的值6)在程序中声明LOB Locator7)取得包含LOB Locator的行8)用DBMS_LOB和OCI读取BFILE10、LOB的操作可以用SQL、PL/SQL、3GL中嵌入式SQL或者OCI中的变量值直接INSERT 到LOB中。
可以用其他的LOB、NULL或者EMPTY_CLOB()/EMPTY_BLOB()的值UPDATE LOB。
当把一个LOB赋给另一个时,其实是新建了一个LOB。
这些操作不需要SELECT FOR UPDATE。
只有在更新LOB 的其中一部分的时候才需要先LOCK。
ORACLE8不会自动转换CLOB和BLOB。
最好的办法是OCILobWrite,以为它使用ORACLE的流机制,最快、使用更好的空间和REDO。
删除LOB的方法DELETE ....TRUNCATE TABLE....DROP TABLE ...删除后注意在OS级别上删除相关文件。
如果只是要去掉LOB的Locator,可以用NULL或者空字符串''来UPDATE。
11、DBMS_LOB包DBMS_LOB包用SYS用户提交DBMSLOB.SQL和PRVTLOB.PLB脚本。
它们包含在CATPROC.SQL中。
用户要授权才能使用它。
匿名BLOCK中的DBMS_LOB例程使用当前用户的权限。
STOREDPROCEDURE中的DBMS_LOB调用使用其所有者的权限。
它不支持BFILE的并发控制机制。
你必须控制LOB的LOCK,DBMS_LOB不会隐式的LOCK LOB所在的ROW。