oracle blob nocache,【求助帖】关于blob和clob的一些错误

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

LZ又来求助各位大神了。是这样的,由于此前不小心删掉了一个带有blob和clob类型的表,现在需要重建。有这个表以前导出的存档。存档语句如下:

CREATE TABLE "TPL"."SY_PART"

(

"ID" NUMBER NOT NULL ENABLE,

"SYSTEMPOPEDOM" VARCHAR2(4000 BYTE),

"FUNCTIONCODE" NUMBER(32,0) DEFAULT (-1),

"CREATEPEOPLE" VARCHAR2(200 BYTE),

"CREATETIME" DATE DEFAULT (SYSDATE),

"DEPLEVEL" VARCHAR2(50 BYTE) DEFAULT 0,

"TABLENAME" CLOB,

"MODELNAME" CLOB,

"SOURCENAME" CLOB,

"ANALYSISNAME" CLOB,

"TABLENAME1" CLOB,

"CXNAME" CLOB,

"CLNAME" CLOB,

"LS" NUMBER DEFAULT 0,

"LS_START_DATE" DATE,

"LS_END_DATE" DATE,

"SYSTEMTYPE" VARCHAR2(50 BYTE) DEFAULT 'syjk'

)

SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE

(

INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT

)

TABLESPACE "SYJK_SYSTEM" LOB

(

"TABLENAME"

)

STORE AS BASICFILE

(

TABLESPACE "SYJK_SYSTEM" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10 NOCACHE LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

)

LOB

(

"MODELNAME"

)

STORE AS BASICFILE

(

TABLESPACE "SYJK_SYSTEM" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10 NOCACHE LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

)

LOB

(

"SOURCENAME"

)

STORE AS BASICFILE

(

TABLESPACE "SYJK_SYSTEM" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10 NOCACHE LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

)

LOB

(

"ANALYSISNAME"

)

STORE AS BASICFILE

(

TABLESPACE "SYJK_SYSTEM" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10 NOCACHE LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

)

LOB

(

"TABLENAME1"

)

STORE AS BASICFILE

(

TABLESPACE "SYJK_SYSTEM" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10 NOCACHE LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

)

LOB

(

"CXNAME"

)

STORE AS BASICFILE

(

TABLESPACE "SYJK_SYSTEM" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10 NOCACHE LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

)

LOB

(

"CLNAME"

)

STORE AS BASICFILE

(

TABLESPACE "SYJK_SYSTEM" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10 NOCACHE LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

) ;

后面的备注语句和索引语句就不放上来了。

然后直接语句建立或者执行.sql文件的时候就会在

SEGMENT CREATION IMMEDIATE这里出现红线报ORA-00922选项缺失或无效。之后将SEGMENT那一段去掉只保留TABLESPACE "SYJK_SYSTEM"之后的。然后会报错说无效的storage选项,出现红线的位置就是每个lob后面STORE AS BASICFILE之后。也试过用PLSQL直接编辑表插入字段选择blob,但是会提示字段名重复,然后给字段名加了双引号也不行。后面blob的内容里如果添加了sql文档里的这些语句,会报错说缺失左括号。。现在依旧一头雾水中,此前也没有用过clob和blob,求大神帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Oracle中的BLOBCLOB都是用来存储大型二进制和字符数据的数据类型,但是它们之间有一些区别。 BLOB是二进制大型对象,用于存储二进制数据,例如图像、音频和视频等。BLOB数据可以通过二进制流进行读取和写入。 CLOB是字符大型对象,用于存储字符数据,例如文本和XML等。CLOB数据可以通过字符流进行读取和写入。 另外,BLOBCLOB在存储和检索时的处理方式也有所不同。BLOB数据可以使用OracleBLOB API进行处理,而CLOB数据可以使用OracleCLOB API进行处理。 ### 回答2: 在Oracle数据库中,BLOBCLOB都是用于存储大型二进制对象(LOB)的数据类型。但是,它们之间存在一些区别。 首先,BLOB(Binary Large Object)用于存储二进制数据,例如图像、音频和视频文件等。而CLOB(Character Large Object)用于存储字符数据,例如文本文档和HTML页面等。 其次,BLOB在存储时不会进行字符集转换,而CLOB则需要转换为数据库的字符集。这意味着当您插入或更新BLOB数据时,它将保持原样,而CLOB数据可能会因为字符集转换而发生变化。因此,在处理文本数据时应该使用CLOB,而在处理二进制数据时应该使用BLOB。 另外,BLOB可以存储二进制文件,并且是二进制安全的,这意味着它可以存储任意二进制数据。而CLOB只能存储字符数据,因此无法存储二进制文件。 最后,由于BLOBCLOB存储的数据量可能非常大,因此它们的操作方式也有所不同。通常情况下,您不应该使用SELECT *查询BLOBCLOB列,因为它们会返回非常大的数据块并导致性能问题。相反,您应该使用子选择语句或分段读取(chunking)等技术来处理LOB数据。 总之,在Oracle数据库中,BLOBCLOB是用于存储大型对象的非常有用的数据类型,但是要注意它们之间的差异并适当地使用它们以获得最佳性能和效果。 ### 回答3: Oracle数据库是一种关系型数据库管理系统。它支持许多数据类型以适应不同的场景,其中包括BLOBCLOB类型。BLOBCLOB类型是两种不同的数据类型,它们在使用和存储方面有着一些不同之处。 BLOB是二进制大型对象(Binary Large Object)的缩写,存储的是二进制数据,例如图片、音乐、视频等等。它可以存储最大长度达到4GB的二进制数据。BLOB数据可以直接存储在数据库表中,也可以被存储在文件系统中。当需要操作BLOB数据时,可以使用内置的函数来读取、写入或更新数据。 CLOB是字符大型对象(Character Large Object)的缩写,存储的是文本数据,例如文章、邮件、代码等等。它可以存储最大长度达到4GB的文本数据。CLOB数据也可以直接存储在数据库表中,但由于其大小通常比BLOB更大,因此它们也可以被存储在文件中,而不是存储在表中。当需要处理CLOB数据时,也可以使用内置的函数进行读取、写入或更新。 BLOBCLOB在使用方式上也有所不同。BLOB数据更适合用于媒体数据的存储和处理,例如图片、音乐、视频等。而CLOB数据则更适合用于文本数据的存储和处理,例如文章、邮件、代码等。通常来说,CLOBBLOB更易于处理和查询,因为它们是基于文本的数据类型,可以使用文本搜索和其他文本处理功能。 总之,在Oracle数据库中,BLOBCLOB是两种不同的数据类型,用途和存储方式也不同。BLOB用于存储二进制数据,例如图片、音乐、视频等;而CLOB用于存储文本数据,例如文章、邮件、代码等。了解它们之间的差异可以帮助你选择正确的数据类型,并更好地进行数据库管理和维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值