如何在Oracle12c XMLTYPE列中查找哪个列附加了哪个LOB?
下表中有两个XMLTYPE列(ERROR\u FLAG,COL\u XML)和一个LOB列(LOG\u TEXT)如何在Oracle12c XMLTYPE列中查找哪个列附加了哪个LOB?,oracle,oracle12c,xmltype,data-dictionary,lob,Oracle,Oracle12c,Xmltype,Data Dictionary,Lob,下表中有两个XMLTYPE列(ERROR\u FLAG,COL\u XML)和一个LOB列(LOG\u TEXT) CREATE TABLE APPLICATION_LOG ( ID NUMBER NOT NULL, LOG_TIME TIMESTAMP(6) NOT NULL, ERROR_FLAG XMLTYPE, LOG_TEXT
CREATE TABLE APPLICATION_LOG
(
ID NUMBER NOT NULL,
LOG_TIME TIMESTAMP(6) NOT NULL,
ERROR_FLAG XMLTYPE,
LOG_TEXT CLOB,
COL_XML XMLTYPE,
LOG_MESSAGETYPE VARCHAR2(30 BYTE) NOT NULL
)
XMLTYPE COL_XML STORE AS SECUREFILE BINARY XML (
TABLESPACE users
ENABLE STORAGE IN ROW
CHUNK 8192
NOCACHE
NOLOGGING)
ALLOW NONSCHEMA
DISALLOW ANYSCHEMA
LOB (LOG_TEXT) STORE AS BASICFILE (
TABLESPACE users
ENABLE STORAGE IN ROW
CHUNK 8192
PCTVERSION 10
NOCACHE
NOLOGGING)
NOCOMPRESS
TABLESPACE users
;
如果我执行下面的查询,我会得到三行
CREATE TABLE APPLICATION_LOG
(
ID NUMBER NOT NULL,
LOG_TIME TIMESTAMP(6) NOT NULL,
ERROR_FLAG XMLTYPE,
LOG_TEXT CLOB,
COL_XML XMLTYPE,
LOG_MESSAGETYPE VARCHAR2(30 BYTE) NOT NULL
)
XMLTYPE COL_XML STORE AS SECUREFILE BINARY XML (
TABLESPACE users
ENABLE STORAGE IN ROW
CHUNK 8192
NOCACHE
NOLOGGING)
ALLOW NONSCHEMA
DISALLOW ANYSCHEMA
LOB (LOG_TEXT) STORE AS BASICFILE (
TABLESPACE users
ENABLE STORAGE IN ROW
CHUNK 8192
PCTVERSION 10
NOCACHE
NOLOGGING)
NOCOMPRESS
TABLESPACE users
;
SELECT *
FROM dba_lobs l
WHERE l.table_name = 'APPLICATION_LOG'
AND l.owner = 'SYSTEM'
CREATE TABLE APPLICATION_LOG
(
ID NUMBER NOT NULL,
LOG_TIME TIMESTAMP(6) NOT NULL,
ERROR_FLAG XMLTYPE,
LOG_TEXT CLOB,
COL_XML XMLTYPE,
LOG_MESSAGETYPE VARCHAR2(30 BYTE) NOT NULL
)
XMLTYPE COL_XML STORE AS SECUREFILE BINARY XML (
TABLESPACE users
ENABLE STORAGE IN ROW
CHUNK 8192
NOCACHE
NOLOGGING)
ALLOW NONSCHEMA
DISALLOW ANYSCHEMA
LOB (LOG_TEXT) STORE AS BASICFILE (
TABLESPACE users
ENABLE STORAGE IN ROW
CHUNK 8192
PCTVERSION 10
NOCACHE
NOLOGGING)
NOCOMPRESS
TABLESPACE users
;
如何确定第一个LOB是哪个XMLTYPE列(ERROR_FLAG或COL_XML),因为它们的名称现在是系统生成的?
如何找到SYS\u NC00004$--->对应于什么?您可以通过使用
dba\u tab\u cols
字典视图来使用这种自联接
CREATE TABLE APPLICATION_LOG
(
ID NUMBER NOT NULL,
LOG_TIME TIMESTAMP(6) NOT NULL,
ERROR_FLAG XMLTYPE,
LOG_TEXT CLOB,
COL_XML XMLTYPE,
LOG_MESSAGETYPE VARCHAR2(30 BYTE) NOT NULL
)
XMLTYPE COL_XML STORE AS SECUREFILE BINARY XML (
TABLESPACE users
ENABLE STORAGE IN ROW
CHUNK 8192
NOCACHE
NOLOGGING)
ALLOW NONSCHEMA
DISALLOW ANYSCHEMA
LOB (LOG_TEXT) STORE AS BASICFILE (
TABLESPACE users
ENABLE STORAGE IN ROW
CHUNK 8192
PCTVERSION 10
NOCACHE
NOLOGGING)
NOCOMPRESS
TABLESPACE users
;
SELECT c2.data_type, c2.column_name, c1.data_type, c1.column_name
FROM dba_tab_cols c1
JOIN dba_tab_cols c2
ON c1.segment_column_id = c2.column_id
AND c1.table_name = c2.table_name
AND c2.data_type = 'XMLTYPE'
WHERE c1.table_name = 'APPLICATION_LOG'
CREATE TABLE APPLICATION_LOG
(
ID NUMBER NOT NULL,
LOG_TIME TIMESTAMP(6) NOT NULL,
ERROR_FLAG XMLTYPE,
LOG_TEXT CLOB,
COL_XML XMLTYPE,
LOG_MESSAGETYPE VARCHAR2(30 BYTE) NOT NULL
)
XMLTYPE COL_XML STORE AS SECUREFILE BINARY XML (
TABLESPACE users
ENABLE STORAGE IN ROW
CHUNK 8192
NOCACHE
NOLOGGING)
ALLOW NONSCHEMA
DISALLOW ANYSCHEMA
LOB (LOG_TEXT) STORE AS BASICFILE (
TABLESPACE users
ENABLE STORAGE IN ROW
CHUNK 8192
PCTVERSION 10
NOCACHE
NOLOGGING)
NOCOMPRESS
TABLESPACE users
;