请有人帮助我开发一个查询,以找到特定于某一列的数据卷。因此,我们有一个clob和blob数据类型列,在该列中,我们需要识别这两列相对于日期字段的大小。从象征意义上讲,逻辑是
select size(of column type clob/blob) from {table} where date (another column) >= {}
这里的想法是确定有资格进行家务管理的数据的大小。
预期结果
发布于 2020-09-30 17:02:39
尝试下面的查询,
如果需要,可以筛选特定的table
和column
。
使用视图的DBA_:
SELECT l.owner,
l.table_name,
l.column_name,
l.segment_name,
l.tablespace_name,
round(s.bytes/1024/1024,2) size_mb
FROM dba_lobs l
JOIN dba_segments s
ON s.owner = l.owner
AND s.segment_name = l.segment_name
ORDER BY 6 DESC;
使用视图的User_:
SELECT l.table_name,
l.column_name,
l.segment_name,
l.tablespace_name,
round(s.bytes/1024/1024,2) size_mb
FROM user_lobs l
JOIN user_segments s
ON s.segment_name = l.segment_name
ORDER BY 5 DESC;
发布于 2020-09-30 16:57:38
您可以使用DBMS_LOB.GETLENGTH
获取CLOB或BLOB的长度。
查询
WITH
sample_data
AS
(SELECT EMPTY_CLOB () AS clob_val FROM DUAL
UNION ALL
SELECT EMPTY_CLOB () || 'some text' AS clob_val FROM DUAL)
SELECT DBMS_LOB.SUBSTR (clob_val, 200, 1) AS clob_text,
DBMS_LOB.getlength (clob_val) AS clob_length
FROM sample_data;
结果
CLOB_TEXT CLOB_LENGTH
____________ ______________
0
some text 9
https://stackoverflow.com/questions/64142232
复制相似问题