MINI MINI MANI MO
create or replace view SYSIBM.SYSPLAN
(
NAME,
CREATOR,
BOUNDBY,
VALID,
UNIQUE_ID,
TOTALSECT,
FORMAT,
SECT_INFO,
HOST_VARS,
ISOLATION,
BLOCK,
STANDARDS_LEVEL,
FUNC_PATH,
EXPLICIT_BIND_TIME,
LAST_BIND_TIME,
QUERYOPT,
EXPLAIN_LEVEL,
EXPLAIN_MODE,
EXPLAIN_SNAPSHOT,
SQLWARN,
CODEPAGE,
REMARKS,
SQLRULES,
SQLRULES_STRING,
INSERT_BUF,
DEFINER,
DEFAULT_SCHEMA,
MULTINODE_PLANS,
DEGREE,
RDS_LEVEL,
SQLMATHWARN,
INTRA_PARALLEL,
"VALIDATE",
DYNAMICRULES,
SQLERROR,
REFRESHAGE,
PKG_CREATE_TIME,
FEDERATED,
TRANSFORMGROUP,
TRF_GRP_PACKED_DESC,
PKGVERSION,
REOPTVAR,
OS_PTR_SIZE,
PACKED_DESC,
STATICREADONLY,
FEDERATED_ASYNCHRONY,
DEFINERTYPE,
BOUNDBYTYPE,
OPTPROFILESCHEMA,
OPTPROFILENAME,
COLLATIONID,
COLLATIONID_ORDERBY,
CONCURRENTACCESSRESOLUTION,
PKGID,
DBPARTITIONNUM,
APREUSE,
ALTER_TIME,
ANONBLOCK,
EXTENDEDINDICATOR,
LASTUSED
)
AS SELECT
NAME,
COLLID CREATOR,
CREATOR BOUNDBY,
VALID,
CONTOKEN UNIQUE_ID,
PKSIZE TOTALSECT,
CAST(' ' AS CHARACTER(1)) FORMAT,
TO_BLOB('20') SECT_INFO,
TO_BLOB(NULL) HOST_VARS,
CASE ISOLATION
WHEN 'R' THEN 'RR'
WHEN 'C' THEN 'CS'
WHEN 'N' THEN 'UR'
WHEN 'G' THEN 'CH' -- You'll never see this, DB2/400 only
WHEN 'A' THEN 'RS'
ELSE 'CS'
END ISOLATION,
BLOCKING BLOCK,
CAST(NULL AS CHARACTER(1)) STANDARDS_LEVEL,
TO_CLOB(' ') FUNC_PATH,
LAST_BIND_TIME EXPLICIT_BIND_TIME,
LAST_BIND_TIME,
CAST(0 AS INTEGER) QUERYOPT,
CAST(' ' AS CHARACTER(1)) EXPLAIN_LEVEL,
CAST(' ' AS CHARACTER(1)) EXPLAIN_MODE,
CAST(' ' AS CHARACTER(1)) EXPLAIN_SNAPSHOT,
CAST(' ' AS CHARACTER(1)) SQLWARN ,
CODEPAGES CODEPAGE,
CAST(NULL AS VARCHAR(254)) REMARKS,
CAST(' ' AS CHARACTER(1)) SQLRULES,
CAST(' ' AS VARCHAR(254)) SQLRULES_STRING,
CAST(' ' AS CHARACTER(1)) INSERT_BUF,
CAST(' ' AS VARCHAR(128)) DEFINER,
QUALIFIER DEFAULT_SCHEMA,
CAST(' ' AS CHARACTER(1)) MULTINODE_PLANS,
CAST(' ' AS CHARACTER(5)) DEGREE,
CAST(0 AS NUMBER(4)) RDS_LEVEL,
CAST(' ' AS CHARACTER(1)) SQLMATHWARN,
CAST(' ' AS CHARACTER(1)) INTRA_PARALLEL,
CAST(' ' AS CHARACTER(1)) "VALIDATE",
DYNAMICRULES,
CAST(' ' AS CHARACTER(1)) SQLERROR,
CAST(0 AS DECIMAL(20, 6)) REFRESHAGE,
CREATE_TIME PKG_CREATE_TIME,
CAST(' ' AS CHARACTER(1)) FEDERATED,
CAST(NULL AS VARCHAR(1024)) TRANSFORMGROUP,
TO_BLOB(NULL) TRF_GRP_PACKED_DESC,
CAST(VRSNAM AS VARCHAR(64)) PKGVERSION,
CAST(' ' AS CHARACTER(1)) REOPTVAR,
CAST(8 AS INTEGER) OS_PTR_SIZE,
TO_BLOB(NULL) PACKED_DESC,
CAST(' ' AS CHARACTER(1)) STATICREADONLY,
CAST(0 AS INTEGER) FEDERATED_ASYNCHRONY,
CAST(' ' AS CHARACTER(1)) DEFINERTYPE,
CAST(' ' AS CHARACTER(1)) BOUNDBYTYPE,
CAST(NULL AS VARCHAR(128)) OPTPROFILESCHEMA,
CAST(NULL AS VARCHAR(128)) OPTPROFILENAME,
CAST('00' AS RAW(8)) COLLATIONID,
CAST('00' AS RAW(8)) COLLATIONID_ORDERBY,
CAST(NULL AS CHARACTER(1)) CONCURRENTACCESSRESOLUTION,
CAST(0 AS DECIMAL(19)) PKGID,
CAST(0 AS NUMBER(4)) DBPARTITIONNUM,
CAST(' ' AS CHARACTER(1)) APREUSE,
LAST_BIND_TIME ALTER_TIME,
CAST(' ' AS CHARACTER(1)) ANONBLOCK,
CAST(' ' AS CHARACTER(1)) EXTENDEDINDICATOR,
CAST(CURRENT_DATE AS DATE) LASTUSED
FROM SYSIBM.USER_DRDAASPACKAGE;
grant SELECT on SYSIBM.SYSPLAN to DRDAAS_USER_ROLE;
create or replace view SYSIBM.SYSPACKAGE
AS SELECT
CAST(NULL AS VARCHAR(128)) LOCATION,
PA.COLLID,
PA.NAME,
PA.CONTOKEN,
PA.OWNER,
PA.CREATOR,
PA.CREATE_TIME TIMESTAMP,
PA.LAST_BIND_TIME BINDTIME,
CAST(' ' AS VARCHAR(128)) QUALIFIER,
PA.PKSIZE,
PA.PKSIZE AVGSIZE,
CAST(0 AS NUMBER(4)) SYSENTRIES,
PA.VALID,
'Y' OPERATIVE,
'R' "VALIDATE",
CASE ISOLATION
WHEN 'R' THEN 'R'
WHEN 'C' THEN 'S'
WHEN 'N' THEN 'U'
WHEN 'G' THEN 'C' -- You'll never see this, DB2/400 only
WHEN 'A' THEN 'T'
ELSE 'S'
END ISOLATION,
'C' RELEASE,
'N' EXPLAIN,
CASE PA.STRDEL
WHEN '''' THEN 'N'
ELSE 'Y'
END QUOTE,
CASE PA.DECDEL
WHEN '.' THEN 'N'
ELSE 'Y'
END COMMA,
' ' HOSTLANG,
'A' CHARSET,
'Y' MIXED,
CASE DECPRC
WHEN 31 THEN 'Y'
ELSE 'N'
END DEC31,
CASE BLOCKING
WHEN 'B' THEN 'B'
WHEN 'F' THEN 'A'
ELSE 'C'
END DEFERPREP,
'C' SQLERROR,
'Y' REMOTE,
TO_TIMESTAMP('0001-01-01-00:00:00.000000',
'YYYY-MM-DD-HH24:MI:SS.FF6') PCTIMESTAMP,
'N' IBMREQD,
CAST(VRSNAM AS VARCHAR(122)) VERSION,
CAST(' ' AS VARCHAR(132)) PDSNAME,
CAST('ANY' AS CHAR(3)) DEGREE,
CAST(' ' AS VARCHAR(24)) GROUP_MEMBER,
'R' DYNAMICRULES,
'Y' REOPTVAR,
'Y' DEFERPREPARE,
'N' KEEPDYNAMIC,
CAST(' ' AS VARCHAR(2048)) PATHSCHEMAS,
' ' TYPE,
'D' DBPROTOCOL,
TO_TIMESTAMP('0001-01-01-00:00:00.000000',
'YYYY-MM-DD-HH24:MI:SS.FF6') FUNCTIONTS,
CAST(' ' AS VARCHAR(128)) OPTHINT,
PA.CODEPAGES ENCODING_CCSID,
'N' IMMEDWRITE,
'M' RELBOUND,
' ' CATENCODE,
CAST(' ' AS VARCHAR(550)) REMARKS,
' ' OWNERTYPE,
'E' ROUNDING,
'N' DISTRIBUTE,
CAST(CURRENT_DATE AS DATE) LASTUSED,
'Y' CONCUR_ACC_RES,
'N' EXTENDEDINDICATOR,
CAST(0 AS NUMBER(9)) COPYID,
' ' PLANMGMT,
' ' PLANMGMTSCOPE,
'N' APREUSE,
'Y' APRETAINDUP,
'N' SYSTIMESENSITIVE,
'Y' RECORDTEMPORALHIST
FROM SYSIBM.DBA_DRDAASPACKAGE PA;
grant SELECT on SYSIBM.SYSPACKAGE to DRDAAS_USER_ROLE;
create or replace view SYSIBM.SYSPACKSTMT
AS SELECT
CAST(NULL AS VARCHAR(128)) LOCATION,
COLLID,
NAME,
CONTOKEN,
CAST(0 AS NUMBER(9)) SEQNO,
STMTNO,
SECTNO,
CAST('N' AS CHARACTER(1)) BINDERROR,
CAST('N' AS CHARACTER(1)) IBMREQD,
CAST(VRSNAM AS VARCHAR(122)) VERSION,
CAST('00' AS RAW(1)) STMT,
CAST(' ' AS CHARACTER(1)) ISOLATION,
CAST('C' AS CHARACTER(1)) STATUS,
CAST(' ' AS CHARACTER(1)) ACCESSPATH,
CAST(STMTNO AS NUMBER(9)) STMTNOI,
CAST((CASE
WHEN SECTNO >= 0 THEN SECTNO
WHEN SECTNO < 0 THEN SECTNO + 65536
END) AS NUMBER(9)) SECTNOI,
CAST('N' AS CHARACTER(1)) EXPLAINABLE,
CAST(STMTNO AS NUMBER(9)) QUERYNO,
CAST('00' AS RAW(40)) "ROWID",
CAST(0 AS NUMBER(19)) STMT_ID,
STMT STATEMENT,
TO_BLOB('00') STMTBLOB
FROM SYSIBM.USER_DRDAASPACKSTMT;
grant SELECT on SYSIBM.SYSPACKSTMT to DRDAAS_USER_ROLE;
CREATE or replace VIEW SYSIBM.SYSTABLES
AS SELECT
TA.TABLE_NAME NAME,
TA.OWNER CREATOR,
'T' TYPE,
CAST ('ORACLE' AS VARCHAR(24)) DBNAME,
NVL(TABLESPACE_NAME, 'SYSTSTAB') TSNAME,
CAST (1 AS NUMBER(4)) DBID,
CAST (0 AS NUMBER(4)) OBID,
CAST (NVL(CO.MAXCOLS, 0) AS NUMBER(4))COLCOUNT,
CAST (NULL AS VARCHAR(24)) EDPROC,
CAST (NULL AS VARCHAR(24)) VALPROC,
' ' CLUSTERTYPE,
CAST (0 AS NUMBER(9)) CLUSTERRID,
CAST (NVL2(NUM_ROWS,
CASE WHEN NUM_ROWS > 2147483647 THEN 2147483647
ELSE NUM_ROWS END, -1) AS NUMBER(10)) CARD,
CAST (NVL2(BLOCKS,
CASE WHEN BLOCKS > 2147483647 THEN 2147483647
ELSE BLOCKS END, -1) AS NUMBER(10)) NPAGES,
CAST (-1 AS NUMBER(4)) PCTPAGES,
'N' IBMREQD,
CAST (TC.COMMENTS AS VARCHAR(762)) REMARKS,
CAST (NVL(/* RP.PARENTCOUNT */ 0, 0) AS NUMBER(4)) PARENTS,
CAST (NVL(/* RC.CHILDCOUNT */ 0, 0) AS NUMBER(4)) CHILDREN,
CAST (NVL(PK.MAXKEYS, 0) AS NUMBER(4))KEYCOLUMNS,
CAST (1 AS NUMBER(4)) RECLENGTH,
' ' STATUS,
CAST (0 AS NUMBER(4)) KEYOBID,
CAST (NULL AS VARCHAR(90)) LABEL,
' ' CHECKFLAG,
CAST ('00000000' AS RAW(4)) CHECKRID,
' ' AUDITING,
TA.OWNER CREATEDBY,
CAST (NULL AS VARCHAR(128)) LOCATION,
CAST (NULL AS VARCHAR(128)) TBCREATOR,
CAST (NULL AS VARCHAR(128)) TBNAME,
LOCALTIMESTAMP CREATEDTS,
LOCALTIMESTAMP ALTEREDTS,
' ' DATACAPTURE,
CAST ('000000000000' AS RAW(6)) RBA1,
CAST ('000000000000' AS RAW(6)) RBA2,
CAST (-1 AS NUMBER(4)) PCTROWCOMP,
CAST (NVL(TA.LAST_ANALYZED,
TO_TIMESTAMP('0001-01-01-00:00:00.000000',
'YYYY-MM-DD-HH24:MI:SS.FF6'))
AS TIMESTAMP(6)) STATSTIME,
CAST (NVL(/* CK.CheckCount */ 0, 0) AS NUMBER(4)) CHECKS,
CAST (NVL(NUM_ROWS, -1) AS BINARY_DOUBLE) CARDF,
CAST ('4040404040' AS RAW(5)) CHECKRID5B,
'U' ENCODING_SCHEME,
CAST (NULL AS VARCHAR(30)) TABLESTATUS,
CAST (NVL(BLOCKS, -1) AS BINARY_DOUBLE) NPAGESF,
CAST (-1 AS BINARY_DOUBLE) SPACEF,
CAST (NVL(AVG_ROW_LEN, -1) AS NUMBER(9)) AVGROWLEN,
'M' RELCREATED,
CAST (0 AS NUMBER(4)) NUM_DEP_MQTS,
CAST (0 AS NUMBER(4)) VERSION,
CAST (NVL(TP.PARTITIONING_KEY_COUNT, 0) AS NUMBER(4)) PARTKEYCOLNUM,
' ' SPLIT_ROWS,
' ' SECURITY_LABEL,
TA.OWNER OWNER,
'N' APPEND,
' ' OWNERTYPE,
' ' CONTROL,
CAST (NULL AS VARCHAR(128)) VERSIONING_SCHEMA,
CAST (NULL AS VARCHAR(128)) VERSIONING_TABLE,
CAST (0 AS NUMBER(4)) HASHKEYCOLUMNS
FROM ALL_TABLES TA
LEFT OUTER JOIN all_part_tables TP
ON TA.OWNER = TP.OWNER
AND TA.TABLE_NAME = TP.TABLE_NAME
LEFT OUTER JOIN (select owner, table_name,
max(COLUMN_ID) maxcols
from all_tab_columns
where DATA_TYPE_OWNER is NULL
group by owner, table_name) CO
ON TA.OWNER = CO.OWNER
AND TA.TABLE_NAME = CO.TABLE_NAME
LEFT OUTER JOIN (select cn.owner, cn.table_name,
max(cc.POSITION) maxkeys
from all_constraints cn, ALL_CONS_COLUMNS cc
where cn.owner = cc.owner
and cn.CONSTRAINT_NAME = cc.CONSTRAINT_NAME
and cn.table_name = cc.table_name
and cn.CONSTRAINT_TYPE = 'P'
group by cn.owner, cn.table_name) PK
ON TA.OWNER = PK.OWNER
AND TA.TABLE_NAME = PK.TABLE_NAME,
ALL_TAB_COMMENTS TC
WHERE TA.OWNER = TC.OWNER
AND TA.TABLE_NAME = TC.TABLE_NAME
UNION ALL
SELECT
VW.VIEW_NAME NAME,
VW.OWNER CREATOR,
'V' TYPE,
CAST ('ORACLE' AS VARCHAR(24)) DBNAME,
CAST ('SYSTSTAB' AS VARCHAR(30)) TSNAME,
CAST (1 AS NUMBER(4)) DBID,
CAST (0 AS NUMBER(4)) OBID,
CAST (NVL(CO.MAXCOLS, 0) AS NUMBER(4))COLCOUNT,
CAST (NULL AS VARCHAR(24)) EDPROC,
CAST (NULL AS VARCHAR(24)) VALPROC,
' ' CLUSTERTYPE,
CAST (0 AS NUMBER(9)) CLUSTERRID,
CAST (-1 AS NUMBER(10)) CARD,
CAST (-1 AS NUMBER(10)) NPAGES,
CAST (-1 AS NUMBER(4)) PCTPAGES,
'N' IBMREQD,
CAST (TC.COMMENTS AS VARCHAR(762)) REMARKS,
CAST (NVL(/* RP.PARENTCOUNT */ 0, 0) AS NUMBER(4)) PARENTS,
CAST (NVL(/* RC.CHILDCOUNT */ 0, 0) AS NUMBER(4)) CHILDREN,
CAST (NVL(PK.MAXKEYS, 0) AS NUMBER(4))KEYCOLUMNS,
CAST (0 AS NUMBER(4)) RECLENGTH,
' ' STATUS,
CAST (0 AS NUMBER(4)) KEYOBID,
CAST (NULL AS VARCHAR(90)) LABEL,
' ' CHECKFLAG,
CAST ('00000000' AS RAW(4)) CHECKRID,
' ' AUDITING,
VW.OWNER CREATEDBY,
CAST (NULL AS VARCHAR(128)) LOCATION,
CAST (NULL AS VARCHAR(128)) TBCREATOR,
CAST (NULL AS VARCHAR(128)) TBNAME,
LOCALTIMESTAMP CREATEDTS,
LOCALTIMESTAMP ALTEREDTS,
' ' DATACAPTURE,
CAST ('000000000000' AS RAW(6)) RBA1,
CAST ('000000000000' AS RAW(6)) RBA2,
CAST (-1 AS NUMBER(4)) PCTROWCOMP,
TO_TIMESTAMP('0001-01-01-00:00:00.000000',
'YYYY-MM-DD-HH24:MI:SS.FF6') STATSTIME,
CAST (NVL(/* CK.CheckCount */ 0, 0) AS NUMBER(4)) CHECKS,
CAST (-1 AS BINARY_DOUBLE) CARDF,
CAST ('4040404040' AS RAW(5)) CHECKRID5B,
'U' ENCODING_SCHEME,
CAST (NULL AS VARCHAR(30)) TABLESTATUS,
CAST (-1 AS BINARY_DOUBLE) NPAGESF,
CAST (-1 AS BINARY_DOUBLE) SPACEF,
CAST (-1 AS NUMBER(9)) AVGROWLEN,
'M' RELCREATED,
CAST (0 AS NUMBER(4)) NUM_DEP_MQTS,
CAST (0 AS NUMBER(4)) VERSION,
CAST (0 AS NUMBER(4)) PARTKEYCOLNUM,
' ' SPLIT_ROWS,
' ' SECURITY_LABEL,
VW.OWNER OWNER,
'N' APPEND,
' ' OWNERTYPE,
' ' CONTROL,
CAST (NULL AS VARCHAR(128)) VERSIONING_SCHEMA,
CAST (NULL AS VARCHAR(128)) VERSIONING_TABLE,
CAST (0 AS NUMBER(4)) HASHKEYCOLUMNS
FROM ALL_VIEWS VW
LEFT OUTER JOIN (select owner, table_name,
max(COLUMN_ID) maxcols
from all_tab_columns
where DATA_TYPE_OWNER is NULL
group by owner, table_name) CO
ON VW.OWNER = CO.OWNER
AND VW.VIEW_NAME = CO.TABLE_NAME
LEFT OUTER JOIN (select cn.owner, cn.table_name,
max(cc.POSITION) maxkeys
from all_constraints cn, ALL_CONS_COLUMNS cc
where cn.owner = cc.owner
and cn.CONSTRAINT_NAME = cc.CONSTRAINT_NAME
and cn.table_name = cc.table_name
and cn.CONSTRAINT_TYPE = 'P'
group by cn.owner, cn.table_name) PK
ON VW.OWNER = PK.OWNER
AND VW.VIEW_NAME = PK.TABLE_NAME,
ALL_TAB_COMMENTS TC
WHERE VW.OWNER = TC.OWNER
AND VW.VIEW_NAME = TC.TABLE_NAME
UNION ALL
SELECT
SN.SYNONYM_NAME NAME,
SN.OWNER CREATOR,
'A' TYPE,
CAST ('ORACLE' AS VARCHAR(24)) DBNAME,
CAST ('SYSTSTAB' AS VARCHAR(30)) TSNAME,
CAST (1 AS NUMBER(4)) DBID,
CAST (0 AS NUMBER(4)) OBID,
CAST (0 AS NUMBER(4)) COLCOUNT,
CAST (NULL AS VARCHAR(24)) EDPROC,
CAST (NULL AS VARCHAR(24)) VALPROC,
' ' CLUSTERTYPE,
CAST (0 AS NUMBER(9)) CLUSTERRID,
CAST (-1 AS NUMBER(10)) CARD,
CAST (-1 AS NUMBER(10)) NPAGES,
CAST (-1 AS NUMBER(4)) PCTPAGES,
'N' IBMREQD,
CAST (NULL AS VARCHAR(762)) REMARKS,
CAST (0 AS NUMBER(4)) PARENTS,
CAST (0 AS NUMBER(4)) CHILDREN,
CAST (0 AS NUMBER(4)) KEYCOLUMNS,
CAST (0 AS NUMBER(4)) RECLENGTH,
' ' STATUS,
CAST (0 AS NUMBER(4)) KEYOBID,
CAST (NULL AS VARCHAR(90)) LABEL,
' ' CHECKFLAG,
CAST ('00000000' AS RAW(4)) CHECKRID,
' ' AUDITING,
SN.OWNER CREATEDBY,
DB_LINK LOCATION,
TABLE_OWNER TBCREATOR,
TABLE_NAME TBNAME,
LOCALTIMESTAMP CREATEDTS,
LOCALTIMESTAMP ALTEREDTS,
' ' DATACAPTURE,
CAST ('000000000000' AS RAW(6)) RBA1,
CAST ('000000000000' AS RAW(6)) RBA2,
CAST (-1 AS NUMBER(4)) PCTROWCOMP,
TO_TIMESTAMP('0001-01-01-00:00:00.000000',
'YYYY-MM-DD-HH24:MI:SS.FF6') STATSTIME,
CAST (0 AS NUMBER(4)) CHECKS,
CAST (-1 AS BINARY_DOUBLE) CARDF,
CAST ('4040404040' AS RAW(5)) CHECKRID5B,
'U' ENCODING_SCHEME,
CAST (NULL AS VARCHAR(30)) TABLESTATUS,
CAST (-1 AS BINARY_DOUBLE) NPAGESF,
CAST (-1 AS BINARY_DOUBLE) SPACEF,
CAST (-1 AS NUMBER(9)) AVGROWLEN,
'M' RELCREATED,
CAST (0 AS NUMBER(4)) NUM_DEP_MQTS,
CAST (0 AS NUMBER(4)) VERSION,
CAST (0 AS NUMBER(4)) PARTKEYCOLNUM,
' ' SPLIT_ROWS,
' ' SECURITY_LABEL,
SN.OWNER OWNER,
'N' APPEND,
' ' OWNERTYPE,
' ' CONTROL,
CAST (NULL AS VARCHAR(128)) VERSIONING_SCHEMA,
CAST (NULL AS VARCHAR(128)) VERSIONING_TABLE,
CAST (0 AS NUMBER(4)) HASHKEYCOLUMNS
FROM ALL_SYNONYMS SN
WHERE DB_LINK IS NOT NULL
OR EXISTS (SELECT 1 FROM ALL_CATALOG AC
WHERE SN.TABLE_OWNER = AC.OWNER
AND SN.TABLE_NAME = AC.TABLE_NAME
AND AC.TABLE_TYPE IN ('TABLE', 'VIEW'));
grant SELECT on SYSIBM.SYSTABLES to DRDAAS_USER_ROLE;
CREATE or replace VIEW SYSIBM.SYSSYNONYMS
AS SELECT
SN.SYNONYM_NAME NAME,
SN.OWNER CREATOR,
TABLE_NAME TBNAME,
TABLE_OWNER TBCREATOR,
'N' IBMREQD,
SN.OWNER CREATEDBY,
LOCALTIMESTAMP CREATEDTS,
' ' CREATORTYPE,
'M' RELCREATED
FROM ALL_SYNONYMS SN
WHERE 1 = 2;
grant SELECT on SYSIBM.SYSSYNONYMS to DRDAAS_USER_ROLE;
CREATE or replace VIEW SYSIBM.SYSDUMMY1
AS SELECT
'Y' IBMREQD
FROM DUAL;
grant SELECT on SYSIBM.SYSDUMMY1 to DRDAAS_USER_ROLE;
CREATE or replace VIEW SYSIBM.SYSVIEWS
AS SELECT
VIEW_NAME NAME,
OWNER CREATOR,
CAST(0 AS NUMBER(4)) SEQNO,
'N' "CHECK",
'N' IBMREQD,
CAST(NULL AS VARCHAR (1500)) TEXT,
CAST(NULL AS VARCHAR (2048)) PATHSCHEMAS,
'M' RELCREATED,
'V' TYPE,
' ' REFRESH,
' ' ENABLE,
' ' MAINTENANCE,
TO_TIMESTAMP('0001-01-01-00:00:00.000000',
'YYYY-MM-DD-HH24:MI:SS.FF6') REFRESH_TIME,
' ' ISOLATION,
CAST(NULL AS VARCHAR (1024)) SIGNATURE,
CAST(1208 AS NUMBER(9)) APP_ENCODING_CCSID,
OWNER OWNER,
' ' OWNERTYPE,
CAST(0 AS NUMBER(9)) ENVID,
CAST('00' AS RAW(40)) ROWID_VIEW,
TEXT STATEMENT,
TO_BLOB(NULL) PARSETREE
FROM ALL_VIEWS VW;
grant SELECT on SYSIBM.SYSVIEWS to DRDAAS_USER_ROLE;
CREATE or replace VIEW SYSIBM.SYSINDEXES
AS SELECT
IX.INDEX_NAME NAME,
IX.OWNER CREATOR,
IX.TABLE_NAME TBNAME,
TABLE_OWNER TBCREATOR,
CAST (CASE UNIQUENESS
WHEN 'UNIQUE' THEN NVL(AC.CONSTRAINT_TYPE, 'U') -- 'P' Primary key or 'U'
WHEN 'NONUNIQUE' THEN 'D'
END AS CHAR(1)) UNIQUERULE,
CAST (NVL(KY.MAXKEYS, 0) AS NUMBER(4)) COLCOUNT,
CASE INDEX_TYPE
WHEN 'CLUSTER' THEN 'Y'
ELSE 'N'
END CLUSTERING,
' ' CLUSTERED,
CAST (1 AS NUMBER(4)) DBID,
CAST (0 AS NUMBER(4)) OBID,
CAST (0 AS NUMBER(4)) ISOBID,
CAST ('ORACLE' AS VARCHAR(24))DBNAME,
NVL(TABLESPACE_NAME, 'SYSTSTAB') INDEXSPACE,
CAST (0 AS NUMBER(9)) FIRSTKEYCARD,
CAST (0 AS NUMBER(9)) FULLKEYCARD,
CAST (NVL(LEAF_BLOCKS, -1) AS NUMBER(9)) NLEAF,
CAST (NVL(BLEVEL, -1) AS NUMBER(4)) NLEVELS,
CAST ('ORACLE' AS CHAR(8)) BPOOL,
CAST (4096 AS NUMBER(4)) PGSIZE,
'N' ERASERULE,
CAST (NULL AS VARCHAR (24)) DSETPASS,
'Y' CLOSERULE,
CAST (-1 AS NUMBER(9)) SPACE,
'N' IBMREQD,
CAST (0 AS NUMBER(4)) CLUSTERRATIO,
IX.OWNER CREATEDBY,
CAST (0 AS NUMBER(4)) IOFACTOR,
CAST (0 AS NUMBER(4)) PREFETCHFACTOR,
CAST (NVL(IX.LAST_ANALYZED,
TO_TIMESTAMP('0001-01-01-00:00:00.000000',
'YYYY-MM-DD-HH24:MI:SS.FF6'))
AS TIMESTAMP(6)) STATSTIME,
' ' INDEXTYPE,
CAST (-1 AS BINARY_DOUBLE) FIRSTKEYCARDF,
CAST (NVL(DISTINCT_KEYS, -1) AS BINARY_DOUBLE) FULLKEYCARDF,
LOCALTIMESTAMP CREATEDTS,
LOCALTIMESTAMP ALTEREDTS,
CAST (0 AS NUMBER(9)) PIECESIZE,
'N' COPY,
CAST ('000000000000' AS RAW(6)) COPYLRSN,
CAST (0 AS BINARY_DOUBLE) CLUSTERRATIOF,
CAST (-1 AS BINARY_DOUBLE) SPACEF,
CAST (NULL AS VARCHAR (762)) REMARKS,
'N' PADDED,
CAST (0 AS NUMBER(4)) VERSION,
CAST (0 AS NUMBER(4)) OLDEST_VERSION,
CAST (0 AS NUMBER(4)) CURRENT_VERSION,
'M' RELCREATED,
CAST (-1 AS NUMBER(9)) AVGKEYLEN,
CAST (0 AS NUMBER(4)) KEYTARGET_COUNT,
CAST (0 AS NUMBER(4)) UNIQUE_COUNT,
' ' IX_EXTENSION_TYPE,
CASE COMPRESSION
WHEN 'ENABLED' THEN 'Y'
ELSE 'N'
END "COMPRESS",
IX.OWNER OWNER,
' ' OWNERTYPE,
CAST (-1 AS BINARY_DOUBLE) DATAREPEATFACTORF,
CAST (0 AS NUMBER(9)) ENVID,
CAST('00' AS RAW(40)) ROWID_INDEX,
'N' HASH,
'N' SPARSE,
TO_BLOB(NULL) PARSETREE,
TO_BLOB(NULL) RTSECTION
FROM ALL_INDEXES IX LEFT OUTER JOIN ALL_CONSTRAINTS AC
ON IX.OWNER = AC.OWNER
AND IX.INDEX_NAME = AC.INDEX_NAME
LEFT OUTER JOIN (SELECT IC.INDEX_OWNER, IC.INDEX_NAME,
MAX(IC.COLUMN_POSITION) MAXKEYS
FROM ALL_IND_COLUMNS IC
GROUP BY IC.INDEX_OWNER, IC.INDEX_NAME) KY
ON IX.OWNER = KY.INDEX_OWNER
AND IX.INDEX_NAME = KY.INDEX_NAME;
grant SELECT on SYSIBM.SYSINDEXES to DRDAAS_USER_ROLE;
CREATE or replace VIEW SYSIBM.SYSKEYS
AS SELECT
INDEX_NAME IXNAME,
INDEX_OWNER IXCREATOR,
TC.COLUMN_NAME COLNAME,
CAST (TC.COLUMN_ID AS NUMBER(4)) COLNO,
CAST (COLUMN_POSITION AS NUMBER(4)) COLSEQ,
CASE DESCEND
WHEN 'DESC' THEN 'D'
WHEN 'ASC' THEN 'A'
END ORDERING,
'N' IBMREQD,
' ' PERIOD
FROM ALL_IND_COLUMNS IC, ALL_TAB_COLUMNS TC
WHERE IC.TABLE_OWNER = TC.OWNER
AND IC.TABLE_NAME = TC.TABLE_NAME
AND IC.COLUMN_NAME = TC.COLUMN_NAME;
grant SELECT on SYSIBM.SYSKEYS to DRDAAS_USER_ROLE;
CREATE OR REPLACE VIEW SYSIBM.SYSKEYCOLUSE
AS SELECT
AC.CONSTRAINT_NAME CONSTNAME,
AC.OWNER TBCREATOR,
AC.TABLE_NAME TBNAME,
AC.COLUMN_NAME COLNAME,
CAST (AC.POSITION AS NUMBER(4)) COLSEQ,
CAST (KY.COLUMN_ID AS NUMBER(4)) COLNO,
'N' IBMREQD,
' ' PERIOD
FROM ALL_CONS_COLUMNS AC
LEFT OUTER JOIN ALL_TAB_COLS KY
ON AC.OWNER = KY.OWNER
AND AC.TABLE_NAME = KY.TABLE_NAME
AND AC.COLUMN_NAME = KY.COLUMN_NAME
WHERE AC.POSITION IS NOT NULL;
grant SELECT on SYSIBM.SYSKEYCOLUSE to DRDAAS_USER_ROLE;
CREATE or replace VIEW SYSIBM.SYSRELS
AS SELECT
AC1.OWNER CREATOR,
AC1.TABLE_NAME TBNAME,
AC1.CONSTRAINT_NAME RELNAME,
AC2.TABLE_NAME REFTBNAME,
AC2.OWNER REFTBCREATOR,
CAST (MAXKEYS AS NUMBER(4)) COLCOUNT,
CASE AC1.DELETE_RULE
WHEN 'CASCADE' THEN 'C'
WHEN 'SET NULL' THEN 'N'
WHEN 'NO ACTION' THEN 'A'
END DELETERULE,
'N' IBMREQD,
CAST (0 AS NUMBER(4)) RELOBID1,
CAST (0 AS NUMBER(4)) RELOBID2,
LOCALTIMESTAMP TIMESTAMP,
CASE AC2.CONSTRAINT_TYPE
WHEN 'P' THEN NULL
ELSE AC2.OWNER
END IXOWNER,
CASE AC2.CONSTRAINT_TYPE
WHEN 'P' THEN NULL
ELSE AC2.INDEX_NAME
END IXNAME,
CASE AC1.STATUS
WHEN 'ENABLED' THEN 'Y'
WHEN 'DISABLED' THEN 'N'
END ENFORCED,
CASE AC1.VALIDATED
WHEN 'VALIDATED' THEN 'I'
WHEN 'NOT VALIDATED' THEN 'N'
END CHECKEXISTINGDATA,
'M' RELCREATED
FROM ALL_CONSTRAINTS AC1, ALL_CONSTRAINTS AC2
LEFT OUTER JOIN (SELECT CC.OWNER, CC.CONSTRAINT_NAME,
MAX(CC.POSITION) MAXKEYS
FROM ALL_CONS_COLUMNS CC
GROUP BY CC.OWNER, CC.CONSTRAINT_NAME) PK
ON AC2.OWNER = PK.OWNER
AND AC2.CONSTRAINT_NAME = PK.CONSTRAINT_NAME
WHERE AC1.CONSTRAINT_TYPE = 'R'
AND AC1.R_OWNER = AC2.OWNER
AND AC1.R_CONSTRAINT_NAME = AC2.CONSTRAINT_NAME
AND AC2.CONSTRAINT_TYPE IN ('P', 'U');
grant SELECT on SYSIBM.SYSRELS to DRDAAS_USER_ROLE;
CREATE or replace VIEW SYSIBM.SYSFOREIGNKEYS
AS SELECT
CC.OWNER CREATOR,
CC.TABLE_NAME TBNAME,
CC.CONSTRAINT_NAME RELNAME,
TC.COLUMN_NAME COLNAME,
CAST (TC.COLUMN_ID AS NUMBER(4)) COLNO,
CAST (CC.POSITION AS NUMBER(4)) COLSEQ,
'N' IBMREQD
FROM ALL_CONS_COLUMNS CC, ALL_CONSTRAINTS AC, ALL_TAB_COLUMNS TC
WHERE CC.POSITION IS NOT NULL
AND CC.OWNER = AC.OWNER
AND CC.CONSTRAINT_NAME = AC.CONSTRAINT_NAME
AND AC.CONSTRAINT_TYPE = 'R'
AND CC.OWNER = TC.OWNER
AND CC.TABLE_NAME = TC.TABLE_NAME
AND CC.COLUMN_NAME = TC.COLUMN_NAME;
grant SELECT on SYSIBM.SYSFOREIGNKEYS to DRDAAS_USER_ROLE;
CREATE or replace VIEW SYSIBM.SYSTABCONST
AS SELECT
AC.CONSTRAINT_NAME CONSTNAME,
AC.OWNER TBCREATOR,
AC.TABLE_NAME TBNAME,
AC.OWNER CREATOR,
AC.CONSTRAINT_TYPE TYPE,
AC.INDEX_OWNER IXOWNER,
AC.INDEX_NAME IXNAME,
CAST (NVL(AC.LAST_CHANGE,
TO_TIMESTAMP('0001-01-01-00:00:00.000000',
'YYYY-MM-DD-HH24:MI:SS.FF6'))
AS TIMESTAMP(6)) CREATEDTS,
'N' IBMREQD,
CAST(KY.MAXCOLS AS NUMBER(4)) COLCOUNT,
'N' RELCREATED
FROM ALL_CONSTRAINTS AC
LEFT OUTER JOIN (SELECT IC.CONSTRAINT_NAME, IC.OWNER, IC.TABLE_NAME,
MAX(IC.POSITION) MAXCOLS
FROM ALL_CONS_COLUMNS IC
GROUP BY IC.CONSTRAINT_NAME, IC.OWNER, IC.TABLE_NAME) KY
ON AC.CONSTRAINT_NAME = KY.CONSTRAINT_NAME
AND AC.OWNER = KY.OWNER
AND AC.TABLE_NAME = KY.TABLE_NAME
WHERE AC.CONSTRAINT_TYPE IN ( 'P', 'U');
grant SELECT on SYSIBM.SYSTABCONST to DRDAAS_USER_ROLE;
CREATE or replace VIEW SYSIBM.SYSCOLUMNS
AS SELECT
TC.COLUMN_NAME NAME,
TC.TABLE_NAME TBNAME,
TC.OWNER TBCREATOR,
CAST (COLUMN_ID AS NUMBER(4)) COLNO,
CASE DATA_TYPE
WHEN 'CHAR' THEN 'CHAR'
WHEN 'VARCHAR2' THEN 'VARCHAR'
WHEN 'LONG' THEN 'LONGVAR'
WHEN 'NCHAR' THEN 'GRAPHIC'
WHEN 'NVARCHAR2' THEN 'VARG'
WHEN 'RAW' THEN 'BINARY'
WHEN 'LONG RAW' THEN 'VARBIN'
WHEN 'ROWID' THEN 'ROWID'
WHEN 'DATE' THEN 'DATE'
WHEN 'BINARY_FLOAT' THEN 'FLOAT'
WHEN 'BINARY_DOUBLE' THEN 'FLOAT'
WHEN 'NUMBER'
THEN CASE DATA_SCALE
WHEN 0
THEN CASE
WHEN DATA_PRECISION = 1
THEN 'DECIMAL'
WHEN DATA_PRECISION < 5
THEN 'SMALLINT'
WHEN DATA_PRECISION < 10
THEN 'INTEGER'
WHEN DATA_PRECISION < 19
THEN 'BIGINT'
WHEN DATA_PRECISION < 32
THEN 'DECIMAL'
ELSE 'DECFLOAT'
END
ELSE
CASE
WHEN DATA_PRECISION < 32
AND DATA_SCALE > 0
AND DATA_SCALE < 32
AND DATA_PRECISION >= DATA_SCALE
THEN 'DECIMAL'
ELSE 'DECFLOAT'
END
END
WHEN 'FLOAT'
THEN 'DECFLOAT'
ELSE CASE
WHEN DATA_TYPE LIKE 'TIMESTAMP(%)' THEN 'TIMESTMP'
WHEN DATA_TYPE LIKE 'TIMESTAMP(%) WITH LOCAL TIME ZONE' THEN 'TIMESTMP'
WHEN DATA_TYPE LIKE 'TIMESTAMP(%) WITH TIME ZONE' THEN 'TIMESTZ'
ELSE 'UNKNOWN'
END
END COLTYPE,
CAST (CASE DATA_TYPE
WHEN 'NCHAR' THEN CHAR_LENGTH -- CHAR semantics
WHEN 'NVARCHAR2' THEN CHAR_LENGTH -- CHAR semantics
WHEN 'ROWID' THEN 18
WHEN 'DATE' THEN 4
WHEN 'BINARY_FLOAT' THEN 4
WHEN 'BINARY_DOUBLE' THEN 8
WHEN 'NUMBER'
THEN CASE DATA_SCALE
WHEN 0
THEN CASE
WHEN DATA_PRECISION = 1
THEN DATA_PRECISION -- for DECIMAL, it's just precision
WHEN DATA_PRECISION < 5
THEN 2 -- SMALLINT is 2
WHEN DATA_PRECISION < 10
THEN 4 -- INTEGER is 4
WHEN DATA_PRECISION < 19
THEN 8 -- BIGINT is 8
WHEN DATA_PRECISION < 32
THEN DATA_PRECISION -- for DECIMAL, it's just precision
ELSE 16 -- for DECFLOAT(34), byte length
END
ELSE
CASE
WHEN DATA_PRECISION < 32
AND DATA_SCALE > 0
AND DATA_SCALE < 32
AND DATA_PRECISION >= DATA_SCALE
THEN DATA_PRECISION -- for DECIMAL, it's just precision
WHEN DATA_PRECISION < 17
THEN 8 -- for DECFLOAT(16), byte length
ELSE 16 -- for DECFLOAT(34), byte length
END
END
WHEN 'FLOAT'
THEN CASE
WHEN DATA_PRECISION < 54
THEN 8 -- for DECFLOAT(16), byte length
ELSE 16 -- for DECFLOAT(34), byte length
END
ELSE CASE
WHEN DATA_TYPE LIKE 'TIMESTAMP(%)' THEN TRUNC((DATA_SCALE+1)/2) + 7
WHEN DATA_TYPE LIKE 'TIMESTAMP(%) WITH LOCAL TIME ZONE'
THEN TRUNC((DATA_SCALE+1)/2) + 7
WHEN DATA_TYPE LIKE 'TIMESTAMP(%) WITH TIME ZONE'
THEN TRUNC((DATA_SCALE+1)/2) + 9
ELSE DATA_LENGTH
END
END AS NUMBER(5)) LENGTH,
CAST (NVL(CASE DATA_TYPE
WHEN 'NUMBER'
THEN CASE
WHEN DATA_SCALE <= DATA_PRECISION
AND DATA_SCALE > 0
AND DATA_PRECISION < 32
THEN DATA_SCALE -- for DECIMAL, scale
ELSE 0
END
ELSE 0
END
, 0) AS NUMBER(4)) SCALE,
CAST (NULLABLE AS CHAR (1)) NULLS,
CAST (NVL2(NUM_DISTINCT,
CASE WHEN NUM_DISTINCT > 2147483647 THEN 2147483647
ELSE NUM_DISTINCT END, -1) AS NUMBER(10)) COLCARD,
CAST (NULL AS VARCHAR (2000)) HIGH2KEY,
CAST (NULL AS VARCHAR (2000)) LOW2KEY,
'Y' UPDATES,
'N' IBMREQD,
CAST (CC.COMMENTS AS VARCHAR(762)) REMARKS,
' ' "DEFAULT",
CAST (NVL(PK.POSITION, 0) AS NUMBER(4)) KEYSEQ,
CASE DATA_TYPE
WHEN 'CHAR' THEN 'M'
WHEN 'VARCHAR2' THEN 'M'
WHEN 'LONG' THEN 'M'
ELSE ' '
END FOREIGNKEY,
'N' FLDPROC,
CAST (NULL AS VARCHAR (90)) LABEL,
CAST (NVL(LAST_ANALYZED,
TO_TIMESTAMP('0001-01-01-00:00:00.000000',
'YYYY-MM-DD-HH24:MI:SS.FF6'))
AS TIMESTAMP(6)) STATSTIME,
CAST (NULL AS VARCHAR (1536)) DEFAULTVALUE,
CAST (NVL(NUM_DISTINCT, -1) AS BINARY_DOUBLE) COLCARDF,
' ' COLSTATUS,
CAST (CASE DATA_TYPE
WHEN 'ROWID' THEN 40
ELSE 0
END AS NUMBER(9)) LENGTH2, -- LOB length > 32k, ROWID 40
CAST (CASE DATA_TYPE
WHEN 'CHAR' THEN 452
WHEN 'VARCHAR2' THEN 448
WHEN 'LONG' THEN 456
WHEN 'NCHAR' THEN 468
WHEN 'NVARCHAR2' THEN 464
WHEN 'RAW' THEN 912
WHEN 'LONG RAW' THEN 908
WHEN 'ROWID' THEN 904
WHEN 'DATE' THEN 384
WHEN 'BINARY_FLOAT' THEN 480
WHEN 'BINARY_DOUBLE' THEN 480
WHEN 'NUMBER'
THEN CASE DATA_SCALE
WHEN 0
THEN CASE
WHEN DATA_PRECISION = 1
THEN 484
WHEN DATA_PRECISION < 5
THEN 500
WHEN DATA_PRECISION < 10
THEN 496
WHEN DATA_PRECISION < 19
THEN 492
WHEN DATA_PRECISION < 32
THEN 484
ELSE 996
END
ELSE
CASE
WHEN DATA_PRECISION < 32
AND DATA_SCALE > 0
AND DATA_SCALE < 32
AND DATA_PRECISION >= DATA_SCALE
THEN 484
ELSE 996
END
END
WHEN 'FLOAT'
THEN 996
ELSE CASE
WHEN DATA_TYPE LIKE 'TIMESTAMP(%)' THEN 392
WHEN DATA_TYPE LIKE 'TIMESTAMP(%) WITH LOCAL TIME ZONE' THEN 392
WHEN DATA_TYPE LIKE 'TIMESTAMP(%) WITH TIME ZONE' THEN 2448
ELSE 0
END
END AS NUMBER(9)) DATATYPEID,
CAST (0 AS NUMBER(9)) SOURCETYPEID,
CAST ('SYSIBM' AS VARCHAR (128))TYPESCHEMA,
CAST (NULL AS VARCHAR (128)) TYPENAME,
LOCALTIMESTAMP CREATEDTS,
' ' STATS_FORMAT,
CAST (NVL(PC.COLUMN_POSITION, 0) AS NUMBER(4)) PARTKEY_COLSEQ,
NVL2(PC.COLUMN_POSITION,'A',' ') PARTKEY_ORDERING,
LOCALTIMESTAMP ALTEREDTS,
CAST (CASE DATA_TYPE
WHEN 'CHAR' THEN 1208
WHEN 'VARCHAR2' THEN 1208
WHEN 'LONG' THEN 1208
WHEN 'NCHAR' THEN 1200
WHEN 'NVARCHAR2' THEN 1200
ELSE 0
END AS NUMBER(9)) CCSID,
' ' HIDDEN,
'M' RELCREATED,
CAST (0 AS NUMBER(9)) CONTROL_ID,
CAST (0 AS NUMBER(9)) XML_TYPEMOD_ID,
' ' PERIOD,
' ' GENERATED_ATTR,
CAST (0 AS NUMBER(4)) HASHKEY_COLSEQ
FROM ALL_TAB_COLUMNS TC LEFT OUTER JOIN ALL_COL_COMMENTS CC
ON TC.OWNER = CC.OWNER
AND TC.TABLE_NAME = CC.TABLE_NAME
AND TC.COLUMN_NAME = CC.COLUMN_NAME
LEFT OUTER JOIN (select cn.owner, cn.table_name,
nc.COLUMN_NAME, nc.POSITION
from all_constraints cn, all_cons_columns nc
where cn.CONSTRAINT_TYPE = 'P'
and cn.owner = nc.owner
and cn.constraint_name = nc.constraint_name
and cn.table_name = nc.table_name) PK
ON TC.OWNER = PK.OWNER
AND TC.TABLE_NAME = PK.TABLE_NAME
AND TC.COLUMN_NAME = PK.COLUMN_NAME
LEFT OUTER JOIN ALL_PART_KEY_COLUMNS PC
ON TC.OWNER = PC.OWNER
AND TC.TABLE_NAME = PC.NAME
AND TC.COLUMN_NAME = PC.COLUMN_NAME
AND PC.OBJECT_TYPE = 'TABLE'
WHERE DATA_TYPE_OWNER IS NULL -- no user define datatypes (objects)
;
grant SELECT on SYSIBM.SYSCOLUMNS to DRDAAS_USER_ROLE;
CREATE or replace VIEW SYSIBM.SYSROUTINES
AS SELECT
AP.OWNER SCHEMA,
AP.OWNER OWNER,
AP.OBJECT_NAME NAME,
CASE AP.OBJECT_TYPE
WHEN 'PROCEDURE' THEN 'P'
WHEN 'FUNCTION' THEN 'F'
END ROUTINETYPE,
AP.OWNER CREATEDBY,
AP.OBJECT_NAME SPECIFICNAME,
CAST (AP.OBJECT_ID AS NUMBER(10)) ROUTINEID,
CAST (CASE AP.OBJECT_TYPE
WHEN 'PROCEDURE' THEN 0
WHEN 'FUNCTION' THEN CASE AA.DATA_TYPE
WHEN 'CHAR' THEN 452
WHEN 'VARCHAR2' THEN 448
WHEN 'LONG' THEN 456
WHEN 'NCHAR' THEN 468
WHEN 'NVARCHAR2' THEN 464
WHEN 'RAW' THEN 912
WHEN 'LONG RAW' THEN 908
WHEN 'ROWID' THEN 904
WHEN 'DATE' THEN 384
WHEN 'BINARY_FLOAT' THEN 480
WHEN 'BINARY_DOUBLE' THEN 480
WHEN 'BINARY_INTEGER' THEN 496
WHEN 'NUMBER'
THEN CASE AA.DATA_SCALE
WHEN 0
THEN CASE
WHEN AA.DATA_PRECISION = 1
THEN 484
WHEN AA.DATA_PRECISION < 5
THEN 500
WHEN AA.DATA_PRECISION < 10
THEN 496
WHEN AA.DATA_PRECISION < 19
THEN 492
WHEN AA.DATA_PRECISION < 32
THEN 484
ELSE 996
END
ELSE
CASE
WHEN AA.DATA_PRECISION < 32
AND AA.DATA_SCALE > 0
AND AA.DATA_SCALE < 32
AND AA.DATA_PRECISION >= DATA_SCALE
THEN 484
ELSE 996
END
END
WHEN 'FLOAT'
THEN 996
ELSE CASE
WHEN AA.DATA_TYPE LIKE 'TIMESTAMP' THEN 392
WHEN AA.DATA_TYPE LIKE 'TIMESTAMP WITH LOCAL TIME ZONE' THEN 392
WHEN AA.DATA_TYPE LIKE 'TIMESTAMP WITH TIME ZONE' THEN 2448
ELSE 0
END
END
END AS NUMBER(9)) RETURN_TYPE,
CASE AP.OBJECT_TYPE
WHEN 'PROCEDURE' THEN 'N'
WHEN 'FUNCTION' THEN 'Q'
END ORIGIN,
CASE AP.OBJECT_TYPE
WHEN 'PROCEDURE' THEN ' '
WHEN 'FUNCTION' THEN
CASE
WHEN AP.AGGREGATE = 'YES' THEN 'C'
WHEN AP.PIPELINED = 'YES' THEN 'T'
ELSE 'S'
END
END FUNCTION_TYPE,
CAST (AA2.MAXPOS AS NUMBER(4)) PARM_COUNT,
CAST ('SQL' AS VARCHAR (24)) LANGUAGE,
CAST (NULL AS VARCHAR (128)) COLLID,
CAST (NULL AS VARCHAR (128)) SOURCESCHEMA,
CAST (NULL AS VARCHAR (128)) SOURCESPECIFIC,
CASE
WHEN AP.DETERMINISTIC = 'YES' THEN 'Y'
ELSE 'N'
END DETERMINISTIC,
'E' EXTERNAL_ACTION, -- has external side effects?
CASE AP.OBJECT_TYPE
WHEN 'PROCEDURE' THEN 'Y'
WHEN 'FUNCTION' THEN ' '
END NULL_CALL,
' ' CAST_FUNCTION,
' ' SCRATCHPAD,
CAST (0 AS NUMBER(9)) SCRATCHPAD_LENGTH,
' ' FINAL_CALL,
' ' PARALLEL,
' ' PARAMETER_STYLE,
' ' FENCED,
'M' SQL_DATA_ACCESS,
' ' DBINFO,
' ' STAYRESIDENT,
CAST (0 AS NUMBER(9)) ASUTIME,
CAST (NULL AS VARCHAR (96)) WLM_ENVIRONMENT,
' ' WLM_ENV_FOR_NESTED,
' ' PROGRAM_TYPE,
' ' EXTERNAL_SECURITY,
CASE AP.OBJECT_TYPE
WHEN 'PROCEDURE' THEN 'N'
WHEN 'FUNCTION' THEN ' '
END COMMIT_ON_RETURN,
CAST (0 AS NUMBER(4)) RESULT_SETS,
CAST (0 AS NUMBER(4)) LOBCOLUMNS,
LOCALTIMESTAMP CREATEDTS,
LOCALTIMESTAMP ALTEREDTS,
'N' IBMREQD,
CAST (0 AS NUMBER(4)) PARM1,
CAST (0 AS NUMBER(4)) PARM2,
CAST (0 AS NUMBER(4)) PARM3,
CAST (0 AS NUMBER(4)) PARM4,
CAST (0 AS NUMBER(4)) PARM5,
CAST (0 AS NUMBER(4)) PARM6,
CAST (0 AS NUMBER(4)) PARM7,
CAST (0 AS NUMBER(4)) PARM8,
CAST (0 AS NUMBER(4)) PARM9,
CAST (0 AS NUMBER(4)) PARM10,
CAST (0 AS NUMBER(4)) PARM11,
CAST (0 AS NUMBER(4)) PARM12,
CAST (0 AS NUMBER(4)) PARM13,
CAST (0 AS NUMBER(4)) PARM14,
CAST (0 AS NUMBER(4)) PARM15,
CAST (0 AS NUMBER(4)) PARM16,
CAST (0 AS NUMBER(4)) PARM17,
CAST (0 AS NUMBER(4)) PARM18,
CAST (0 AS NUMBER(4)) PARM19,
CAST (0 AS NUMBER(4)) PARM20,
CAST (0 AS NUMBER(4)) PARM21,
CAST (0 AS NUMBER(4)) PARM22,
CAST (0 AS NUMBER(4)) PARM23,
CAST (0 AS NUMBER(4)) PARM24,
CAST (0 AS NUMBER(4)) PARM25,
CAST (0 AS NUMBER(4)) PARM26,
CAST (0 AS NUMBER(4)) PARM27,
CAST (0 AS NUMBER(4)) PARM28,
CAST (0 AS NUMBER(4)) PARM29,
CAST (0 AS NUMBER(4)) PARM30,
CAST (-1 AS BINARY_DOUBLE) IOS_PER_INVOC,
CAST (-1 AS BINARY_DOUBLE) INSTS_PER_INVOC,
CAST (-1 AS BINARY_DOUBLE) INITIAL_IOS,
CAST (-1 AS BINARY_DOUBLE) INITIAL_INSTS,
CAST (-1 AS BINARY_DOUBLE) CARDINALITY,
CAST (1 AS NUMBER(4)) RESULT_COLS,
CAST (NULL AS VARCHAR (762)) EXTERNAL_NAME,
CAST('00' AS RAW(150)) PARM_SIGNATURE,
CAST (NULL AS VARCHAR (762)) RUNOPTS,
CAST (NULL AS VARCHAR (762)) REMARKS,
CAST (NULL AS VARCHAR (3072)) JAVA_SIGNATURE,
CAST (NULL AS VARCHAR (384)) CLASS,
CAST (NULL AS VARCHAR (128)) JARSCHEMA,
CAST (NULL AS VARCHAR (128)) JAR_ID,
'D' SPECIAL_REGS,
CAST (0 AS NUMBER(4)) NUM_DEP_MQTS,
CAST (-1 AS NUMBER(4)) MAX_FAILURE,
CAST (1208 AS NUMBER(9)) PARAMETER_CCSID,
CAST (NULL AS VARCHAR (122)) VERSION,
CAST ('0000000000000000' AS RAW(8)) CONTOKEN,
'Y' ACTIVE,
'N' DEBUG_MODE,
CAST (0 AS NUMBER(9)) TEXT_ENVID,
CAST('00' AS RAW(40)) TEXT_ROWID,
TO_CLOB(' ') TEXT,
' ' OWNERTYPE,
CAST (0 AS NUMBER(9)) PARAMETER_VARCHARFORM,
'M' RELCREATED,
CAST (NULL AS VARCHAR (4000)) PACKAGEPATH,
'N' SECURE,
' ' SYSTEM_DEFINED,
CASE AP.OBJECT_TYPE
WHEN 'PROCEDURE' THEN ' '
WHEN 'FUNCTION' THEN 'Y'
END INLINE,
TO_BLOB(NULL) PARSETREE
FROM ALL_PROCEDURES AP LEFT OUTER JOIN ALL_ARGUMENTS AA
ON AP.OBJECT_ID = AA.OBJECT_ID -- function return parameter
AND AP.OBJECT_TYPE = 'FUNCTION'
AND AA.PACKAGE_NAME IS NULL
AND AA.DATA_LEVEL = 0
AND AA.POSITION = 0
LEFT OUTER JOIN (SELECT OBJECT_ID, MAX(POSITION) MAXPOS
FROM ALL_ARGUMENTS
WHERE PACKAGE_NAME IS NULL
AND DATA_LEVEL = 0
GROUP BY OBJECT_ID) AA2
ON AP.OBJECT_ID = AA2.OBJECT_ID
WHERE OBJECT_TYPE IN ('PROCEDURE', 'FUNCTION');
grant SELECT on SYSIBM.SYSROUTINES to DRDAAS_USER_ROLE;
CREATE or replace VIEW SYSIBM.SYSPARMS
AS SELECT
AA.OWNER SCHEMA,
AA.OWNER OWNER,
AA.OBJECT_NAME NAME,
AA.OBJECT_NAME SPECIFICNAME,
CASE AP.OBJECT_TYPE
WHEN 'PROCEDURE' THEN 'P'
WHEN 'FUNCTION' THEN 'F'
END ROUTINETYPE,
'N' CAST_FUNCTION,
AA.ARGUMENT_NAME PARMNAME,
CAST (AA.OBJECT_ID AS NUMBER(10)) ROUTINEID,
CASE IN_OUT
WHEN 'IN' THEN 'P'
WHEN 'OUT'
THEN CASE
WHEN POSITION = 0 THEN 'C' -- function return parameter
ELSE 'O'
END
WHEN 'IN/OUT' THEN 'B'
END ROWTYPE,
CAST (POSITION AS NUMBER(4)) ORDINAL,
CAST ('SYSIBM' AS VARCHAR(128)) TYPESCHEMA,
CAST (CASE DATA_TYPE
WHEN 'CHAR' THEN 'CHAR'
WHEN 'VARCHAR2' THEN 'VARCHAR'
WHEN 'LONG' THEN 'LONGVAR'
WHEN 'NCHAR' THEN 'GRAPHIC'
WHEN 'NVARCHAR2' THEN 'VARG'
WHEN 'RAW' THEN 'BINARY'
WHEN 'LONG RAW' THEN 'VARBIN'
WHEN 'ROWID' THEN 'ROWID'
WHEN 'DATE' THEN 'DATE'
WHEN 'BINARY_FLOAT' THEN 'FLOAT'
WHEN 'BINARY_DOUBLE' THEN 'FLOAT'
WHEN 'BINARY_INTEGER' THEN 'INTEGER'
WHEN 'NUMBER'
THEN CASE DATA_SCALE
WHEN 0
THEN CASE
WHEN DATA_PRECISION = 1
THEN 'DECIMAL'
WHEN DATA_PRECISION < 5
THEN 'SMALLINT'
WHEN DATA_PRECISION < 10
THEN 'INTEGER'
WHEN DATA_PRECISION < 19
THEN 'BIGINT'
WHEN DATA_PRECISION < 32
THEN 'DECIMAL'
ELSE 'DECFLOAT'
END
ELSE
CASE
WHEN DATA_PRECISION < 32
AND DATA_SCALE > 0
AND DATA_SCALE < 32
AND DATA_PRECISION >= DATA_SCALE
THEN 'DECIMAL'
ELSE 'DECFLOAT'
END
END
WHEN 'FLOAT'
THEN 'DECFLOAT'
ELSE CASE
WHEN DATA_TYPE LIKE 'TIMESTAMP' THEN 'TIMESTMP'
WHEN DATA_TYPE LIKE 'TIMESTAMP WITH LOCAL TIME ZONE' THEN 'TIMESTMP'
WHEN DATA_TYPE LIKE 'TIMESTAMP WITH TIME ZONE' THEN 'TIMESTZ'
ELSE 'UNKNOWN'
END
END AS VARCHAR(128)) TYPENAME,
CAST (CASE DATA_TYPE
WHEN 'CHAR' THEN 452
WHEN 'VARCHAR2' THEN 448
WHEN 'LONG' THEN 456
WHEN 'NCHAR' THEN 468
WHEN 'NVARCHAR2' THEN 464
WHEN 'RAW' THEN 912
WHEN 'LONG RAW' THEN 908
WHEN 'ROWID' THEN 904
WHEN 'DATE' THEN 384
WHEN 'BINARY_FLOAT' THEN 480
WHEN 'BINARY_DOUBLE' THEN 480
WHEN 'BINARY_INTEGER' THEN 496
WHEN 'NUMBER'
THEN CASE DATA_SCALE
WHEN 0
THEN CASE
WHEN DATA_PRECISION = 1
THEN 484
WHEN DATA_PRECISION < 5
THEN 500
WHEN DATA_PRECISION < 10
THEN 496
WHEN DATA_PRECISION < 19
THEN 492
WHEN DATA_PRECISION < 32
THEN 484
ELSE 996
END
ELSE
CASE
WHEN DATA_PRECISION < 32
AND DATA_SCALE > 0
AND DATA_SCALE < 32
AND DATA_PRECISION >= DATA_SCALE
THEN 484
ELSE 996
END
END
WHEN 'FLOAT'
THEN 996
ELSE CASE
WHEN DATA_TYPE LIKE 'TIMESTAMP' THEN 392
WHEN DATA_TYPE LIKE 'TIMESTAMP WITH LOCAL TIME ZONE' THEN 392
WHEN DATA_TYPE LIKE 'TIMESTAMP WITH TIME ZONE' THEN 2448
ELSE 0
END
END AS NUMBER(9)) DATATYPEID,
CAST (0 AS NUMBER(9)) SOURCETYPEID,
'N' LOCATOR,
'N' "TABLE",
CAST (0 AS NUMBER(4)) TABLE_COLNO,
CAST (CASE DATA_TYPE
WHEN 'NCHAR' THEN CHAR_LENGTH -- CHAR semantics
WHEN 'NVARCHAR2' THEN CHAR_LENGTH -- CHAR semantics
WHEN 'ROWID' THEN 18
WHEN 'DATE' THEN 4
WHEN 'BINARY_FLOAT' THEN 4
WHEN 'BINARY_DOUBLE' THEN 8
WHEN 'BINARY_INTEGER' THEN 4 -- INTEGER is 4
WHEN 'NUMBER'
THEN CASE DATA_SCALE
WHEN 0
THEN CASE
WHEN DATA_PRECISION = 1
THEN DATA_PRECISION -- for DECIMAL, it's just precision
WHEN DATA_PRECISION < 5
THEN 2 -- SMALLINT is 2
WHEN DATA_PRECISION < 10
THEN 4 -- INTEGER is 4
WHEN DATA_PRECISION < 19
THEN 8 -- BIGINT is 8
WHEN DATA_PRECISION < 32
THEN DATA_PRECISION -- for DECIMAL, it's just precision
ELSE 16 -- for DECFLOAT(34), byte length
END
ELSE
CASE
WHEN DATA_PRECISION < 32
AND DATA_SCALE > 0
AND DATA_SCALE < 32
AND DATA_PRECISION >= DATA_SCALE
THEN DATA_PRECISION -- for DECIMAL, it's just precision
WHEN DATA_PRECISION < 17
THEN 8 -- for DECFLOAT(16), byte length
ELSE 16 -- for DECFLOAT(34), byte length
END
END
WHEN 'FLOAT'
THEN CASE
WHEN DATA_PRECISION < 54
THEN 8 -- for DECFLOAT(16), byte length
ELSE 16 -- for DECFLOAT(34), byte length
END
ELSE CASE
WHEN DATA_TYPE LIKE 'TIMESTAMP' THEN TRUNC((DATA_SCALE+1)/2) + 7
WHEN DATA_TYPE LIKE 'TIMESTAMP WITH LOCAL TIME ZONE'
THEN TRUNC((DATA_SCALE+1)/2) + 7
WHEN DATA_TYPE LIKE 'TIMESTAMP WITH TIME ZONE'
THEN TRUNC((DATA_SCALE+1)/2) + 9
ELSE DATA_LENGTH
END
END AS NUMBER(9)) LENGTH,
CAST (NVL(CASE DATA_TYPE
WHEN 'NUMBER'
THEN CASE
WHEN DATA_SCALE <= DATA_PRECISION
AND DATA_SCALE > 0
AND DATA_PRECISION < 32
THEN DATA_SCALE -- for DECIMAL, scale
ELSE 0
END
ELSE 0
END
, 0) AS NUMBER(4)) SCALE,
CASE DATA_TYPE
WHEN 'CHAR' THEN 'M'
WHEN 'VARCHAR2' THEN 'M'
WHEN 'LONG' THEN 'M'
ELSE ' '
END SUBTYPE,
CAST (1208 AS NUMBER(9)) CCSID,
CAST (0 AS NUMBER(9)) CAST_FUNCTION_ID,
'U' ENCODING_SCHEME,
'N' IBMREQD,
CAST (NULL AS VARCHAR(122)) VERSION,
' ' OWNERTYPE
FROM ALL_ARGUMENTS AA, ALL_PROCEDURES AP
WHERE AA.DATA_LEVEL = 0
AND AA.PACKAGE_NAME IS NULL
AND AP.OBJECT_TYPE IN ('PROCEDURE', 'FUNCTION')
AND AA.OWNER = AP.OWNER
AND AA.OBJECT_NAME = AP.OBJECT_NAME;
grant SELECT on SYSIBM.SYSPARMS to DRDAAS_USER_ROLE;
CREATE OR REPLACE FUNCTION bigint wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
8
86 ae
64o3d/xO6ai2nzCnYsM43GKD16Qwg8eZgcfLCNL+XlqXWXJH1bO40m1f/pmBXKXSXqYJ3OI1
7HGenp414qhrNXzzyKlt9uP2yGSwTxe447CCWsrdf4WzxsY9SRk9crP6xpQUXYh0ZpBxVQBz
Z3RTf3zaITs1FeI/0Tx0ptyYqAQ=
/
show errors
create or replace public synonym bigint for bigint;
grant execute on bigint to public;
commit;
OHA YOOOO