select u.name, o.name, a.name,
decode(atyp, /* attribute type */
1, 'NUMERICAL',
2, 'CATEGORICAL',
3, 'TEXT',
'UNDEFINED'),
case when bitand(a.properties,8) = 8
then
decode(dtyp, /* nested data type */
1, 'DM_NESTED_CATEGORICALS',
2, 'DM_NESTED_NUMERICALS',
100, 'DM_NESTED_BINARY_FLOATS',
101, 'DM_NESTED_BINARY_DOUBLES')
else
decode(dtyp, /* data type */
1, decode(bitand(a.properties,16), 16,
'NVARCHAR2', 'VARCHAR2'),
2, decode(a.scale, null,
decode(a.precision#, null, 'NUMBER', 'FLOAT'),
'NUMBER'),
4, 'FLOAT',
8, 'LONG',
9, decode(bitand(a.properties,16), 16,
'NCHAR VARYING', 'VARCHAR'),
12, 'DATE',
23, 'RAW', 24, 'LONG RAW',
69, 'ROWID',
96, decode(bitand(a.properties,16), 16,
'NCHAR', 'CHAR'),
100, 'BINARY_FLOAT',
101, 'BINARY_DOUBLE',
105, 'MLSLABEL',
106, 'MLSLABEL',
112, decode(bitand(a.properties,16), 16,
'NCLOB', 'CLOB'),
113, 'BLOB', 114, 'BFILE', 115, 'CFILE',
178, 'TIME(' ||a.scale|| ')',
179, 'TIME(' ||a.scale|| ')' || ' WITH TIME ZONE',
180, 'TIMESTAMP(' ||a.scale|| ')',
181, 'TIMESTAMP(' ||a.scale|| ')' || ' WITH TIME ZONE',
231, 'TIMESTAMP(' ||a.scale|| ')' || ' WITH LOCAL TIME ZONE',
182, 'INTERVAL YEAR(' ||a.precision#||') TO MONTH',
183, 'INTERVAL DAY(' ||a.precision#||') TO SECOND(' ||
a.scale || ')',
208, 'UROWID',
'UNDEFINED')
end,
a.length,
a.precision#,
a.scale,
decode(bitand(a.properties,1),1,'ACTIVE','INACTIVE'),
decode(bitand(a.properties,2),2,'YES','NO'),
a.attrspec
from sys.modelatt$ a, sys.obj$ o, sys.user$ u
where o.obj#=a.mod#
and o.owner#=u.user#
and (o.owner#=userenv('SCHEMAID')
or o.obj# in
(select oa.obj#
from sys.objauth$ oa
where oa.grantee# in ( select kzsrorol
from x$kzsro
)
)
or /* user has system privileges */
exists (select null from v$enabledprivs
where priv_number in (-293 /* SELECT ANY MINING MODEL */)
)
)
and bitand(a.properties, 4) = 0
SELECT U.NAME
, O.NAME
, A.NAME
,
DECODE(ATYP
, /* ATTRIBUTE TYPE */
1
, 'NUMERICAL'
,
2
, 'CATEGORICAL'
,
3
, 'TEXT'
,
'UNDEFINED')
,
CASE WHEN BITAND(A.PROPERTIES
, 8) = 8
THEN
DECODE(DTYP
, /* NESTED DATA TYPE */
1
, 'DM_NESTED_CATEGORICALS'
,
2
, 'DM_NESTED_NUMERICALS'
,
100
, 'DM_NESTED_BINARY_FLOATS'
,
101
, 'DM_NESTED_BINARY_DOUBLES')
ELSE
DECODE(DTYP
, /* DATA TYPE */
1
, DECODE(BITAND(A.PROPERTIES
, 16)
, 16
,
'NVARCHAR2'
, 'VARCHAR2')
,
2
, DECODE(A.SCALE
, NULL
,
DECODE(A.PRECISION#
, NULL
, 'NUMBER'
, 'FLOAT')
,
'NUMBER')
,
4
, 'FLOAT'
,
8
, 'LONG'
,
9
, DECODE(BITAND(A.PROPERTIES
, 16)
, 16
,
'NCHAR VARYING'
, 'VARCHAR')
,
12
, 'DATE'
,
23
, 'RAW'
, 24
, 'LONG RAW'
,
69
, 'ROWID'
,
96
, DECODE(BITAND(A.PROPERTIES
, 16)
, 16
,
'NCHAR'
, 'CHAR')
,
100
, 'BINARY_FLOAT'
,
101
, 'BINARY_DOUBLE'
,
105
, 'MLSLABEL'
,
106
, 'MLSLABEL'
,
112
, DECODE(BITAND(A.PROPERTIES
, 16)
, 16
,
'NCLOB'
, 'CLOB')
,
113
, 'BLOB'
, 114
, 'BFILE'
, 115
, 'CFILE'
,
178
, 'TIME(' ||A.SCALE|| ')'
,
179
, 'TIME(' ||A.SCALE|| ')' || ' WITH TIME ZONE'
,
180
, 'TIMESTAMP(' ||A.SCALE|| ')'
,
181
, 'TIMESTAMP(' ||A.SCALE|| ')' || ' WITH TIME ZONE'
,
231
, 'TIMESTAMP(' ||A.SCALE|| ')' || ' WITH LOCAL TIME ZONE'
,
182
, 'INTERVAL YEAR(' ||A.PRECISION#||') TO MONTH'
,
183
, 'INTERVAL DAY(' ||A.PRECISION#||') TO SECOND(' ||
A.SCALE || ')'
,
208
, 'UROWID'
,
'UNDEFINED')
END
,
A.LENGTH
,
A.PRECISION#
,
A.SCALE
,
DECODE(BITAND(A.PROPERTIES
, 1)
, 1
, 'ACTIVE'
, 'INACTIVE')
,
DECODE(BITAND(A.PROPERTIES
, 2)
, 2
, 'YES'
, 'NO')
,
A.ATTRSPEC
FROM SYS.MODELATT$ A
, SYS.OBJ$ O
, SYS.USER$ U
WHERE O.OBJ#=A.MOD#
AND O.OWNER#=U.USER#
AND (O.OWNER#=USERENV('SCHEMAID')
OR O.OBJ# IN
(SELECT OA.OBJ#
FROM SYS.OBJAUTH$ OA
WHERE OA.GRANTEE# IN ( SELECT KZSROROL
FROM X$KZSRO
)
)
OR /* USER HAS SYSTEM PRIVILEGES */
EXISTS (SELECT NULL
FROM V$ENABLEDPRIVS
WHERE PRIV_NUMBER IN (-293 /* SELECT ANY MINING MODEL */)
)
)
AND BITAND(A.PROPERTIES
, 4) = 0
|
|
|