【LOB】使用USER_LOBS视图获得当前用户包含LOB字段的表

包含LOB类型字段的表往往需要特殊关照,如何快速的获得包含LOB对象的数据库表?
使用DBA_LOBS、ALL_LOBS和USER_LOBS视图可以很方便地获得包含BLOB或CLOB字段的表。

简单看一下效果。

1.创建两个包含LOB类型字段的表T1和T2
[email protected]> create table t1 (a clob);

Table created.

[email protected]> create table t2 (a blob);

Table created.

2.使用USER_LOBS视图查看SEC用户下哪些表包含LOB字段
[email protected]> col TABLE_NAME for a10
[email protected]> col COLUMN_NAME for a10
[email protected]> col SEGMENT_NAME for a25
[email protected]> col TABLESPACE_NAME for a15
[email protected]> select TABLE_NAME,COLUMN_NAME,SEGMENT_NAME,TABLESPACE_NAME from USER_LOBS;

TABLE_NAME COLUMN_NAM SEGMENT_NAME              TABLESPACE_NAME
---------- ---------- ------------------------- ---------------
T1         A          SYS_LOB0000011879C00001$$ USERS
T2         A          SYS_LOB0000011882C00001$$ USERS

3.关于ALL_LOBS视图官方文档中的参考信息
[email protected]> desc ALL_LOBS
 Name                         Null?    Type
 ---------------------------- -------- ------------------------
 OWNER                                 VARCHAR2(30)
 TABLE_NAME                            VARCHAR2(30)
 COLUMN_NAME                           VARCHAR2(4000)
 SEGMENT_NAME                          VARCHAR2(30)
 TABLESPACE_NAME                       VARCHAR2(30)
 INDEX_NAME                            VARCHAR2(30)
 CHUNK                                 NUMBER
 PCTVERSION                            NUMBER
 RETENTION                             NUMBER
 FREEPOOLS                             NUMBER
 CACHE                                 VARCHAR2(10)
 LOGGING                               VARCHAR2(7)
 IN_ROW                                VARCHAR2(3)
 FORMAT                                VARCHAR2(15)
 PARTITIONED                           VARCHAR2(3)

关于每个字段的解释可以参考Oracle的官方文档中的介绍,链接地址如下:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_1092.htm#i1581211

4.小结
数据库设计过程中,在不得不使用大对象的时候,我们需要的是“特殊关照”,特殊类型字段特殊处理,具体问题具体分析。

转载 http://blog.itpub.net/519536/viewspace-664203/

时间: 2024-10-14 18:59:31

【LOB】使用USER_LOBS视图获得当前用户包含LOB字段的表的相关文章

mysql中查找包含特定字段的表

for table in `mysql -uuser -p'pwd' database -e "show tables"|sed '1d'`; do mysql -uroot -p'pwd' database -N -s -e "desc ${table};"|grep "your Field" && echo ${table} || continue; done

查找包含某字段名的表名

select a.name as 表名 from sysobjects a left join syscolumns b on a.id=b.id where a.xtype='U' and b.name='字段名' --查找不包含指定字段的表名 select a.name as 表名 from sysobjects a left join syscolumns b on a.id=b.id where a.xtype='U' EXCEPT select a.name as 表名 from sy

查询当前库中包含某个字段并且包含自增的表

-- use dbname --当前库中包含某个字段的表 select top 1000 o.name as tablename,c.name as colname from dbo.syscolumns c join sysobjects o on c.id=o.id --and uid= USER_ID('dbo') where 1=1 and c.name='col_name' and o.type='U' order by o.name --当前库中包含某个字段and Identity

ORA-22868: 具有 LOB 的表包含有位于不同表空间的段

由于lob对象引起的表空间无法删除.本来是要删除DMS表空间,但是上面有LOB对象,而且表却是在别的表空间DMS4上.解决的办法就是将这些lob移动到DMS4表空间.下面是解决过程 删除用户时报错: drop tablespace dms 第 1 行出现错误:ORA-01549: 表空间非空, 请使用 INCLUDING CONTENTS 选项 SQL> drop tablespace dms including contents and datafiles;drop tablespace dm

查询sqlserver数据库视图、存储过程等包含特定的字符串

? 1 2 3 4 5 6 SELECT  A.name ,         B.definition FROM    SYS.objects A         INNER JOIN sys.sql_modules B ON A.object_id = B.object_id                                         AND ( CHARINDEX('包含字符',                                               

Oracle生成查询包含指定字段名对应的所有数据表记录语句

应用场合:已知字段名字,查询数据库中所有数据表中包含该字段名的所有数据表 操作办法:指定字段名,数据库表用户,执行下面查询语句即可 --Oracle生成查询包含指定字段名对应的所有数据表记录语句 declare mycolumnname VARCHAR(255):='userid';--定义要查询的字段名变量,运行前修改成您要查询的字段名myownername VARCHAR(255):='system';--定义要查询的数据库用户名变量,运行前修改成您要查询的数据库用户名mystring NV

SQL Server 索引中包含查询字段 (INCLUDE索引)

这种索引无法通过数据的设计视图进行设计(也可能是没找到方法!) [sql] view plain copy CREATE INDEX IX_ContractDetail_Quantity ON ContractDetail (CostID, SubStatus, Note ) INCLUDE (Quantity); 和普通的索引唯一的区别就是后面加个了 Include标示 表示索引中包含的字段,单不会再上面建立查询索引. 也就是说可以直接通过 CostId,SubStatus,Note三个字段查

SimpleCursorAdapter参数from必须包含_id字段的原因

String [] from ={Books.Id,Books.Name,Books.Author,Books.Category}; int [] to={R.id.ID,R.id.nameID,R.id.authorID,R.id.categoryID}; ListAdapter bookAdapter = new SimpleCursorAdapter(this,R.layout.booklist,cursor,from,to);调试的时候在SimpleCursorAdapter出现no r

Sql Server 删除表名包含指定字符串的表

删除包含指定字符串的表 create procedure sys_DeleteTableByTableName(@bianliang varchar(100))asbegindeclare @biao varchar(100),@sql varchar(1000)set @sql='%'[email protected]+'%'declare c cursor for select name from sysobjects where type='u' and name like @sqlset