markddrake / YADAMU---Yet-Another-DAta-Migration-Utility

A utility for Migrating Data between Oracle, Postgres, MySQL MariaDB, Snowflake. Stage Data from supported database to Amazon S3 and Azure Blob Storage in JSON and CSV Formats
MIT License
17 stars 9 forks source link

Oracle21c: Schema Metadata Query results in ORA-07445 #239

Closed markddrake closed 10 months ago

markddrake commented 10 months ago

In Oracle21c the following exception occurs intermittently when querying the database for schema metadata.

2023-11-17T21:08:29.815Z [WARNING][RECONNECT][Oracle][SQL]: NJS-500: connection to the Oracle Database was broken
OracleError: NJS-500: connection to the Oracle Database was broken
DPI-1010: not connected
    at OracleQA.executeSQL (file:///C:/Development/YADAMU/src/node/dbi/oracle/oracleDBI.js:787:17)
    at OracleQA.getSchemaMetadata (file:///C:/Development/YADAMU/src/node/dbi/oracle/oracleDBI.js:1286:32)
    at DBReaderFile.getSourceMetadata (file:///C:/Development/YADAMU/src/node/core/dbReader.js:85:69)
    at DBReaderFile.doRead (file:///C:/Development/YADAMU/src/node/core/dbReader.js:343:69)
    at DBReaderFile._read (file:///C:/Development/YADAMU/src/node/core/dbReader.js:366:7)
    at Readable.read (node:internal/streams/readable:515:12)
    at maybeReadMore_ (node:internal/streams/readable:669:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  _DRIVER_ID: 295.96290001273155,
  cause: Error: NJS-500: connection to the Oracle Database was broken
  DPI-1010: not connected
      at async OracleQA.executeSQL (file:///C:/Development/YADAMU/src/node/dbi/oracle/oracleDBI.js:788:19)
      at async OracleQA.getSchemaMetadata (file:///C:/Development/YADAMU/src/node/dbi/oracle/oracleDBI.js:1286:21)
      at async DBReaderFile.getSourceMetadata (file:///C:/Development/YADAMU/src/node/core/dbReader.js:85:54)
      at async DBReaderFile.doRead (file:///C:/Development/YADAMU/src/node/core/dbReader.js:343:58) {
    errorNum: 0,
    offset: 0,
    code: 'NJS-500'
  },
  sql: 'select * from table(YADAMU_EXPORT.GET_SCHEMA_METADATA(:P_OWNER_LIST,:P_OPTIONS))',
  tags: [],
  args: {
    P_OWNER_LIST: 'HR',
    P_OPTIONS: '{"spatialFormat":"WKB","booleanStorageOption":"RAW(1)","objectStorageOption":"NATIVE"}'
  },
  outputFormat: {
    outFormat: 4002,
    fetchInfo: {
      TABLE_SCHEMA: { type: [DbType DB_TYPE_VARCHAR] },
      TABLE_NAME: { type: [DbType DB_TYPE_VARCHAR] },
      COLUMN_NAME_ARRAY: { type: [DbType DB_TYPE_VARCHAR] },
      DATA_TYPE_ARRAY: { type: [DbType DB_TYPE_VARCHAR] },
      SIZE_CONSTRAINT_ARRAY: { type: [DbType DB_TYPE_VARCHAR] },
      CLIENT_SELECT_LIST: { type: [DbType DB_TYPE_VARCHAR] },
      EXPORT_SELECT_LIST: { type: [DbType DB_TYPE_VARCHAR] },
      WITH_CLAUSE: { type: [DbType DB_TYPE_VARCHAR] },
      PARTITION_LIST: { type: [DbType DB_TYPE_VARCHAR] }
    }
  },
  yadamuReconnected: false
}

The alert.log file contains the following

PDB21300(3):Exception [type: SIGSEGV, SI_KERNEL(general_protection)] [ADDR:0x0] [PC:0x14EB4001, qkswcColRefWqbc()+81] [flags: 0x0, count: 1]
Errors in file /opt/oracle/diag/rdbms/cdb21300/CDB21300/trace/CDB21300_ora_27497.trc  (incident=13391) (PDBNAME=PDB21300):
ORA-07445: exception encountered: core dump [qkswcColRefWqbc()+81] [SIGSEGV] [ADDR:0x0] [PC:0x14EB4001] [SI_KERNEL(general_protection)] []
PDB21300(3):Incident details in: /opt/oracle/diag/rdbms/cdb21300/CDB21300/incident/incdir_13391/CDB21300_ora_27497_i13391.trc
PDB21300(3):Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
2023-11-17T21:08:28.592368+00:00
PDB21300(3):*********************************************************************
PDB21300(3):A process (pid: 27497) has internally requested a dump of selected
PDB21300(3):redo. This usually happens following a specific internal error, when
PDB21300(3):analysis of the redo logs will help Oracle Support with the
PDB21300(3):diagnosis.
PDB21300(3):It is recommended that you retain all the redo logs generated (by all
PDB21300(3):the instances) during the past 12 hours, in case additional redo
PDB21300(3):dumps are required to help with the diagnosis.
PDB21300(3):*********************************************************************
2023-11-17T21:08:30.922797+00:00
Dumping diagnostic data in directory=[cdmp_20231117210830], requested by (instance=1, osid=27497), summary=[incident=13391].
2023-11-17T21:08:41.216027+00:00

And the database trace file contains the following

[oracle@95073da3b29e trace]$ more /opt/oracle/diag/rdbms/cdb21300/CDB21300/incident/incdir_13391/CDB21300_ora_27497_i13391.trc
Dump file /opt/oracle/diag/rdbms/cdb21300/CDB21300/incident/incdir_13391/CDB21300_ora_27497_i13391.trc
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
Build label:    RDBMS_21.3.0.0.0_LINUX.X64_210727
ORACLE_HOME:    /opt/oracle/rdbms/21.3/db_home1
System name:    Linux
Node name:      95073da3b29e
Release:        5.15.0-84-generic
Version:        #93-Ubuntu SMP Tue Sep 5 17:16:10 UTC 2023
Machine:        x86_64
Instance name: CDB21300
Redo thread mounted by this instance: 1
Oracle process number: 71
Unix process pid: 27497, NID: 4026533920, image: oracle@95073da3b29e

*** 2023-11-17T21:08:26.261525+00:00
*** SESSION ID:(449.32023) 2023-11-17T21:08:26.261537+00:00
*** CLIENT ID:() 2023-11-17T21:08:26.261543+00:00
*** SERVICE NAME:(pdb21300) 2023-11-17T21:08:26.261550+00:00
*** MODULE NAME:(node.exe) 2023-11-17T21:08:26.261557+00:00
*** ACTION NAME:() 2023-11-17T21:08:26.261563+00:00
*** CLIENT DRIVER:(node-oracledb : 6.2.0 thk) 2023-11-17T21:08:26.261568+00:00
*** CONTAINER ID:(3) 2023-11-17T21:08:26.261574+00:00
*** CLIENT IP:(192.168.1.163) 2023-11-17T21:08:26.261585+00:00
*** CLIENT IP:(192.168.1.163) 2023-11-17T21:08:26.261585+00:00

[TOC00000]
Jump to table of contents
Dump continued from file: /opt/oracle/diag/rdbms/cdb21300/CDB21300/trace/CDB21300_ora_27497.trc
[TOC00001]
ORA-07445: exception encountered: core dump [qkswcColRefWqbc()+81] [SIGSEGV] [ADDR:0x0] [PC:0x14EB4001] [SI_KERNEL(general_protection)] []

[TOC00001-END]
[TOC00002]
========= Dump for incident 13391 (ORA 7445 [qkswcColRefWqbc]) ========
[TOC00003]
----- Beginning of Customized Incident Dump(s) -----
Dumping swap information
Memory (Avail / Total) = 769.63M / 64215.58M
Swap (Avail / Total) = 23725.21M /  66511.99M
Exception [type: SIGSEGV, SI_KERNEL(general_protection)] [ADDR:0x0] [PC:0x14EB4001, qkswcColRefWqbc()+81] [flags: 0x0, count: 1]
Registers:
%rax: 0x00007fcc4af93300 %rbx: 0x00007fcc40418fd8 %rcx: 0x00b38f0000000031
%rdx: 0x0000000017ace814 %rdi: 0x00007fcc40418fd8 %rsi: 0x0000000000000000
%rsp: 0x00007ffec6d54060 %rbp: 0x00007ffec6d54080  %r8: 0x0000000000000001
 %r9: 0x00b38f0000000031 %r10: 0x00007fcc44cecb80 %r11: 0x0000000000000000
%r12: 0x0000000000000000 %r13: 0x00007fcc40418fd8 %r14: 0x00007fcc4af93300
%r15: 0x0000000000000000 %rip: 0x0000000014eb4001 %efl: 0x0000000000010206
  qkswcColRefWqbc()+73 (0x14eb3ff9) pop %r12
  qkswcColRefWqbc()+75 (0x14eb3ffb) pop %rbp
  qkswcColRefWqbc()+76 (0x14eb3ffc) ret
  qkswcColRefWqbc()+77 (0x14eb3ffd) mov 0x78(%r13),%r9
> qkswcColRefWqbc()+81 (0x14eb4001) mov 0x88(%r9),%r12
  qkswcColRefWqbc()+88 (0x14eb4008) test %r9,%r9
  qkswcColRefWqbc()+91 (0x14eb400b) je 0x14eb402b
  qkswcColRefWqbc()+93 (0x14eb400d) test %r12,%r12
  qkswcColRefWqbc()+96 (0x14eb4010) je 0x14eb402b

*** 2023-11-17T21:08:26.266000+00:00
dbkedDefDump(): Starting a non-incident diagnostic dump (flags=0x3, level=3, mask=0x0)
[TOC00004]
----- Current SQL Statement for this session (sql_id=41rmktsyfscag) -----
SELECT AAT.OWNER ,AAT.TABLE_NAME ,SUM(CASE WHEN ((TYPECODE IN ('COLLECTION', 'OBJECT')) AND (ATC.DATA_TYPE NOT IN ('XMLTYPE','ANYDATA','RAW'))) THEN 1 ELSE 0 END) OBJE
CT_COUNT ,CAST(COLLECT('"' || ATC.COLUMN_NAME || '"' ORDER BY INTERNAL_COLUMN_ID) AS T_VC4000_TABLE) COLUMN_NAME_LIST ,CAST(COLLECT( CASE WHEN (JC.FORMAT IS NOT NULL)
THEN '"JSON"' WHEN (ATC.DATA_TYPE = 'RAW' AND ATC.DATA_LENGTH = 1 AND :B5 = '01') THEN '"BOOLEAN"' WHEN (ATC.DATA_TYPE LIKE 'TIMESTAMP(%)') THEN '"TIMESTAMP"' WHEN (DA
TA_TYPE_OWNER IS NULL) THEN '"' || ATC.DATA_TYPE || '"' WHEN (ATC.DATA_TYPE IN ('XMLTYPE','ANYDATA','RAW')) THEN '"' || ATC.DATA_TYPE || '"' ELSE '"\"' || ATC.DATA_TYP
E_OWNER || '\".\"' || ATC.DATA_TYPE || '\""' END ORDER BY INTERNAL_COLUMN_ID) AS T_VC4000_TABLE) DATA_TYPE_LIST ,CAST(COLLECT( CASE WHEN ATC.DATA_TYPE IN ('VARCHAR2',
'CHAR') THEN CASE WHEN (CHAR_LENGTH < DATA_LENGTH) THEN '[' || CHAR_LENGTH || ']' ELSE '[' || DATA_LENGTH || ']' END WHEN (ATC.DATA_TYPE = 'TIMESTAMP') OR (ATC.DATA_TY
PE LIKE 'TIMESTAMP(%)') OR (ATC.DATA_TYPE LIKE '%TIME ZONE') THEN '[' || DATA_SCALE || ']' WHEN ATC.DATA_TYPE IN ('NVARCHAR2', 'NCHAR') THEN '[' || CHAR_LENGTH || ']'
WHEN (ATC.DATA_TYPE = 'RAW' AND ATC.DATA_LENGTH = 1 AND :B5 = '01') THEN '[]' WHEN ATC.DATA_TYPE IN ('UROWID', 'RAW') OR ATC.DATA_TYPE LIKE 'INTERVAL%' THEN '[' || DAT
A_LENGTH || ']' WHEN ATC.DATA_TYPE = 'NUMBER' THEN CASE WHEN DATA_SCALE IS NOT NULL AND DATA_SCALE <> 0 THEN '[' || DATA_PRECISION || ',' || DATA_SCALE || ']' WHEN DAT
A_PRECISION IS NOT NULL THEN '[' || DATA_PRECISION || ']' ELSE '[]' END WHEN ATC.DATA_TYPE = 'FLOAT' THEN '[' || DATA_PRECISION || ']' ELSE '[]' END ORDER BY INTERNAL_
COLUMN_ID) AS T_VC4000_TABLE) SIZE_CONSTRAINT_LIST ,CAST(COLLECT( CASE WHEN ATC.DATA_TYPE = 'RAW' THEN '"' || ATC.COLUMN_NAME || '"' WHEN ((ATC.DATA_TYPE_OWNER = 'MDSY
S') AND (ATC.DATA_TYPE IN ('SDO_GEOMETRY'))) THEN CASE WHEN :B4 IN ('WKB','EWKB') THEN 'case when t."' || ATC.COLUMN_NAME || '" is NULL then NULL ' || 'when t."' || AT
C.COLUMN_NAME || '".ST_isValid() = 1 then t."' || ATC.COLUMN_NAME || '".get_WKB() ' || 'when SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT(t."' || ATC.COLUMN_NAME || '",0.00
001) in (''NULL'',''13032'') then NULL ' || 'else t."' || ATC.COLUMN_NAME || '".get_WKB() ' || 'end "' || ATC.COLUMN_NAME || '"' WHEN :B4 IN ('WKT','EWKT') THEN 'case
when t."' || ATC.COLUMN_NAME || '" is NULL then NULL ' || 'when t."' || ATC.COLUMN_NAME || '".ST_isValid() = 1 then t."' || ATC.COLUMN_NAME || '".get_WKT() ' || 'when
SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT(t."' || ATC.COLUMN_NAME || '",0.00001) in (''NULL'',''13032'') then NULL ' || 'else t."' || ATC.COLUMN_NAME || '".get_WKT() ' |
| 'end "' || ATC.COLUMN_NAME || '"' WHEN :B4 IN ('GeoJSON') THEN 'case when t."' || ATC.COLUMN_NAME || '" is NULL then NULL ' || 'when t."' || ATC.COLUMN_NAME || '".ST
_isValid() = 1 then t."' || ATC.COLUMN_NAME || '".get_GeoJSON() ' || 'when SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT(t."' || ATC.COLUMN_NAME || '",0.00001) in (''NULL'',
''13032'') then NULL ' || 'else t."' || ATC.COLUMN_NAME || '".get_GeoJSON() ' || 'end "' || ATC.COLUMN_NAME || '"' END WHEN ATC.DATA_TYPE = 'XMLTYPE' THEN 'case when "
' || ATC.COLUMN_NAME || '" is NULL then NULL else XMLSERIALIZE(CONTENT "' || ATC.COLUMN_NAME || '" as CLOB) end "' || ATC.COLUMN_NAME || '"' WHEN ATC.DATA_TYPE = 'ROWI
D' OR ATC.DATA_TYPE = 'UROWID' THEN 'ROWIDTOCHAR("' || ATC.COLUMN_NAME || '")' WHEN ATC.DATA_TYPE = 'BFILE' THEN CASE WHEN 1 = 1 THEN 'OBJECT_TO_JSON.SERIALIZE_BFILE("
' || ATC.COLUMN_NAME || '")' ELSE 'OBJECT_SERIALIZATION.SERIALIZE_BFILE("' || ATC.COLUMN_NAME || '")' END WHEN ATC.DATA_TYPE = 'ANYDATA' THEN 'case when "' || ATC.COLU
MN_NAME || '" is NULL then NULL else OBJECT_SERIALIZATION.SERIALIZE_ANYDATA("' || ATC.COLUMN_NAME || '") end "' || ATC.COLUMN_NAME || '"' WHEN TYPECODE = 'COLLECTION'
THEN CASE WHEN :B2 = '01' THEN 'JSON_ARRAY("' || ATC.COLUMN_NAME || '") "' || ATC.COLUMN_NAME || '"' ELSE 'case when "' || ATC.COLUMN_NAME || '" is NULL then NULL else
 "SERIALIZE_OBJECT"(''' || AAT.OWNER || ''',ANYDATA.convertCollection("' || ATC.COLUMN_NAME || '")) end "' || ATC.COLUMN_NAME || '"' END WHEN TYPECODE = 'OBJECT' THEN
CASE WHEN :B2 = '01' THEN '"' || ATC.COLUMN_NAME || '"' ELSE 'case when "' || ATC.COLUMN_NAME || '" is NULL then NULL else "SERIALIZE_OBJECT"(''' || AAT.OWNER || ''',A
NYDATA.convertObject("' || ATC.COLUMN_NAME || '")) end "' || ATC.COLUMN_NAME || '"' END WHEN ATC.DATA_TYPE IN ('LONG','LONG RAW') THEN '''"' || ATC.COLUMN_NAME || '".
Unsupported data type ["' || ATC.DATA_TYPE || '"]''' ELSE '"' || ATC.COLUMN_NAME || '"' END ORDER BY INTERNAL_COLUMN_ID) AS T_VC4000_TABLE) EXPORT_SELECT_LIST ,CAST(CO
LLECT( CASE WHEN ATC.DATA_TYPE IN ('BINARY_FLOAT') THEN 'TO_CHAR(CAST("' || ATC.COLUMN_NAME || '" as BINARY_DOUBLE))' WHEN ATC.DATA_TYPE IN ('BINARY_DOUBLE') THEN 'TO_
CHAR("' || ATC.COLUMN_NAME || '")' WHEN ATC.DATA_TYPE = 'RAW' THEN '"' || ATC.COLUMN_NAME || '"' WHEN ATC.DATA_TYPE LIKE 'INTERVAL DAY% TO SECOND%' THEN 'OBJECT_SERIAL
IZATION.SERIALIZE_DSINTERVAL_ISO8601("' || ATC.COLUMN_NAME || '") "' || ATC.COLUMN_NAME || '"' WHEN ATC.DATA_TYPE LIKE 'INTERVAL YEAR% TO MONTH%' THEN 'OBJECT_SERIALIZ
ATION.SERIALIZE_YMINTERVAL_ISO8601("' || ATC.COLUMN_NAME || '") "' || ATC.COLUMN_NAME || '"' WHEN ((ATC.DATA_TYPE = 'TIMESTAMP') OR (ATC.DATA_TYPE LIKE 'TIMESTAMP(%)')
) THEN 'TO_CHAR("' || ATC.COLUMN_NAME || '",''YYYY-MM-DD"T"HH24:MI:SS' || CASE WHEN ATC.DATA_SCALE > 0 THEN '.FF' || ATC.DATA_SCALE ELSE '' END || '"Z"'')' WHEN ATC.DA
TA_TYPE LIKE 'TIMESTAMP%TIME ZONE' THEN 'TO_CHAR(SYS_EXTRACT_UTC("' || ATC.COLUMN_NAME || '"),''YYYY-MM-DD"T"HH24:MI:SS' || CASE WHEN ATC.DATA_SCALE > 0 THEN '.FF' ||
ATC.DATA_SCALE ELSE '' END || '"Z"'')' WHEN ((ATC.DATA_TYPE_OWNER = 'MDSYS') AND (ATC.DATA_TYPE IN ('SDO_GEOMETRY'))) THEN CASE WHEN :B4 IN ('WKB','EWKB') THEN 'case w
hen t."' || ATC.COLUMN_NAME || '" is NULL then NULL ' || 'when t."' || ATC.COLUMN_NAME || '".ST_isValid() = 1 then t."' || ATC.COLUMN_NAME || '".get_WKB() ' || 'when S
DO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT(t."' || ATC.COLUMN_NAME || '",0.00001) in (''NULL'',''13032'') then NULL ' || 'else t."' || ATC.COLUMN_NAME || '".get_WKB() ' ||
 'end "' || ATC.COLUMN_NAME || '"' WHEN :B4 IN ('WKT','EWKT') THEN 'case when t."' || ATC.COLUMN_NAME || '" is NULL then NULL ' || 'when t."' || ATC.COLUMN_NAME || '".
ST_isValid() = 1 then t."' || ATC.COLUMN_NAME || '".get_WKT() ' || 'when SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT(t."' || ATC.COLUMN_NAME || '",0.00001) in (''NULL'',''
13032'') then NULL ' || 'else t."' || ATC.COLUMN_NAME || '".get_WKT() ' || 'end "' || ATC.COLUMN_NAME || '"' WHEN :B4 IN ('GeoJSON') THEN 'case when t."' || ATC.COLUMN
_NAME || '" is NULL then NULL ' || 'when t."' || ATC.COLUMN_NAME || '".ST_isValid() = 1 then t."' || ATC.COLUMN_NAME || '".get_GeoJSON() ' || 'when SDO_GEOM.VALIDATE_G
EOMETRY_WITH_CONTEXT(t."' || ATC.COLUMN_NAME || '",0.00001) in (''NULL'',''13032'') then NULL ' || 'else t."' || ATC.COLUMN_NAME || '".get_GeoJSON() ' || 'end "' || AT
C.COLUMN_NAME || '"' END WHEN ATC.DATA_TYPE = 'XMLTYPE' THEN 'case when "' || ATC.COLUMN_NAME || '" is NULL then NULL else XMLSERIALIZE(CONTENT "' || ATC.COLUMN_NAME |
| '" as CLOB) end "' || ATC.COLUMN_NAME || '"' WHEN ATC.DATA_TYPE = 'BFILE' THEN CASE WHEN (1=1) THEN 'OBJECT_TO_JSON.SERIALIZE_BFILE("' || ATC.COLUMN_NAME || '") "' |
| ATC.COLUMN_NAME || '"' ELSE 'OBJECT_SERIALIZATION.SERIALIZE_BFILE("' || ATC.COLUMN_NAME || '") "' || ATC.COLUMN_NAME || '"' END WHEN ATC.DATA_TYPE = 'ANYDATA' THEN '
case when "' || ATC.COLUMN_NAME || '" is NULL then NULL else OBJECT_SERIALIZATION.SERIALIZE_ANYDATA("' || ATC.COLUMN_NAME || '") end "' || ATC.COLUMN_NAME || '"' WHEN
ATC.DATA_TYPE = 'JSON' THEN CASE WHEN :B3 = '01' THEN '"' || ATC.COLUMN_NAME || '"' ELSE 'YADAMU_EXPORT.DISABLE_VALUE_CLOB(JSON_SERIALIZE("' || ATC.COLUMN_NAME || '" r
eturning CLOB)) "' || ATC.COLUMN_NAME || '"' END WHEN TYPECODE = 'COLLECTION' THEN CASE WHEN :B2 = '01' THEN 'case when "' || ATC.COLUMN_NAME || '" is NULL then NULL e
lse "SERIALIZE_OBJECT"(''' || AAT.OWNER || ''',ANYDATA.convertCollection("' || ATC.COLUMN_NAME || '")) end "' || ATC.COLUMN_NAME || '"' ELSE 'case when "' || ATC.COLUM
N_NAME || '" is NULL then NULL else "SERIALIZE_OBJECT"(''' || AAT.OWNER || ''',ANYDATA.convertCollection("' || ATC.COLUMN_NAME || '")) end "' || ATC.COLUMN_NAME || '"'
 END WHEN TYPECODE = 'OBJECT' THEN CASE WHEN :B2 = '01' THEN 'case when "' || ATC.COLUMN_NAME || '" is NULL then NULL else "SERIALIZE_OBJECT"(''' || AAT.OWNER || ''',A
NYDATA.convertObject("' || ATC.COLUMN_NAME || '")) end "' || ATC.COLUMN_NAME || '"' ELSE 'case when "' || ATC.COLUMN_NAME || '" is NULL then NULL else "SERIALIZE_OBJEC
T"(''' || AAT.OWNER || ''',ANYDATA.convertObject("' || ATC.COLUMN_NAME || '")) end "' || ATC.COLUMN_NAME || '"' END ELSE '"' || ATC.COLUMN_NAME || '"' END ORDER BY INT
ERNAL_COLUMN_ID) AS T_VC4000_TABLE) CLIENT_SELECT_LIST, (SELECT CAST(COLLECT('"' || PARTITION_NAME || '"') AS T_VC4000_TABLE) FROM ALL_TAB_PARTITIONS ATP WHERE ATP.TAB
LE_NAME = AAT.TABLE_NAME AND ATP.TABLE_OWNER = AAT.OWNER) PARTITION_LIST FROM ALL_ALL_TABLES AAT INNER JOIN ALL_TAB_COLS ATC ON ATC.OWNER = AAT.OWNER AND ATC.TABLE_NAM
E = AAT.TABLE_NAME LEFT OUTER JOIN ALL_TYPES AT ON AT.TYPE_NAME = ATC.DATA_TYPE AND AT.OWNER = ATC.DATA_TYPE_OWNER LEFT OUTER JOIN ALL_MVIEWS AMV ON AMV.OWNER = AAT.OW
NER AND AMV.MVIEW_NAME = AAT.TABLE_NAME LEFT OUTER JOIN ALL_JSON_COLUMNS JC ON JC.COLUMN_NAME = ATC.COLUMN_NAME AND JC.TABLE_NAME = ATC.TABLE_NAME AND JC.OWNER = ATC.O
WNER WHERE AAT.STATUS = 'VALID' AND AAT.DROPPED = 'NO' AND AAT.TEMPORARY = 'N' AND AAT.EXTERNAL = 'NO' AND AAT.NESTED = 'NO' AND AAT.SECONDARY = 'N' AND (AAT.IOT_TYPE
IS NULL OR AAT.IOT_TYPE = 'IOT') AND ( ((TABLE_TYPE IS NULL) AND (HIDDEN_COLUMN = 'NO')) OR ((TABLE_TYPE IS NOT NULL) AND (ATC.COLUMN_NAME IN ('SYS_NC_ROWINFO$','SYS_N
C_OID$','ACLOID','OWNERID'))) ) AND AMV.MVIEW_NAME IS NULL AND AAT.OWNER = :B1 GROUP BY AAT.OWNER, AAT.TABLE_NAME
[TOC00005]
----- PL/SQL Stack -----
----- PL/SQL Call Stack -----
  object      line  object
  handle    number  name
0x1314b32b8       463  package body SYSTEM.YADAMU_EXPORT.GET_SCHEMA_METADATA.GETTABLEMETADATA
0x1314b32b8       882  package body SYSTEM.YADAMU_EXPORT.GET_SCHEMA_METADATA
[TOC00005-END]
[TOC00004-END]

[TOC00006]
----- Call Stack Trace -----
calling              call     entry                argument values in hex
location             type     point                (? means dubious value)
-------------------- -------- -------------------- ----------------------------
ksedst1()+95         call     kgdsdst()            7FCC46BB50D0 000000003
                                                   7FCC46BAE1F0 ? 7FCC46BAE350 ?
                                                   000000000 000000083 ?
ksedst()+53          call     ksedst1()            000000001 000000001
                                                   7FCC46BAE1F0 ? 7FCC46BAE350 ?
                                                   000000000 ? 000000083 ?
dbkedDefDump()+2316  call     ksedst()             000000001 000000001 ?
3                                                  7FCC46BAE1F0 ? 7FCC46BAE350 ?
                                                   000000000 ? 000000083 ?
ksedmp()+609         call     dbkedDefDump()       000000003 000000003
                                                   7FCC46BAE1F0 ? 7FCC46BAE350 ?
                                                   000000000 ? 000000083 ?
ssexhd()+3337        call     ksedmp()             00000044F 000000003 ?
                                                   7FCC46BAE1F0 ? 000000003
                                                   000000000 ? 000000083 ?
sslssSynchHdlr()+50  call     ssexhd()             00000000B 000000000
0                                                  7FCC46BB6AF0 7FCC46BB69C0
                                                   7FCC46BB6920 000000083 ?
sslsshandler()+98    call     sslssSynchHdlr()     000000000 7FCC4AF3E6C0
                                                   01A4C0900 7FCC46BB69C0 ?
                                                   7FCC46BB6920 ? 000000083 ?
__sighandler()       call     sslsshandler()       00000000B 7FCC46BB6AF0
                                                   7FCC46BB69C0 7FCC46BB69C0 ?
                                                   7FCC46BB6920 ? 000000083 ?
qkswcColRefWqbc()+8  signal   __sighandler()       7FCC40418FD8 000000000
1                                                  017ACE814 B38F0000000031 ?
                                                   000000001 ? B38F0000000031 ?
expCheckExprEquiv()  call     qkswcColRefWqbc()    7FCC40418FD8 ? 000000000
+788                                               017ACE814 ? B38F0000000031 ?
                                                   000000001 ? B38F0000000031 ?
qksveFindVEArg()+43  call     expCheckExprEquiv()  7FCC40418FD8 ? 7FCC441B8DD8 ?
1                                                  000000000 000000000 ?
                                                   000000001 ? B38F0000000031 ?
qksveMarkDSB()+152   call     qksveFindVEArg()     7FCC4AF93300 7FCC441B8E90
                                                   000000000 ? 000000000 ?
                                                   000000001 ? B38F0000000031 ?
qksveMarkDSB()+111   call     qksveMarkDSB()       7FCC441B8E90 7FFEC6D543E8
                                                   000000000 ? 000000000 ?
                                                   000000001 ? B38F0000000031 ?
qksqbReturnTopLevel  call     qksveMarkDSB()       7FFEC6D543E8 004EBACE0
OpnP()+86                                          000000000 ? 000000000 ?
                                                   000000001 ? B38F0000000031 ?
qksveInsDrv()+395    call     qksqbReturnTopLevel  7FCC441B8DD8 ? 7FCC40418FD8 ?
                              OpnP()               7FCC4AF3F060 ? 000000000 ?
                                                   000000001 ? B38F0000000031 ?
qkadrv()+944         call     qksveInsDrv()        7FCC44C524B8 100000001
                                                   7FCC4AF3F060 ? 000000000 ?
                                                   000000001 ? B38F0000000031 ?
qkadrv()+7114        call     qkadrv()             7FCC44C524B8 ? 000000000 ?
                                                   7FCC4AF3F060 ? 000000000 ?
                                                   000000001 ? B38F0000000031 ?
qkadrv()+9877        call     qkadrv()             000006000 ? 000000000 ?
                                                   7FCC4AF3F060 ? 000000000 ?
                                                   000000001 ? B38F0000000031 ?
qkadrv()+9877        call     qkadrv()             7FCC43E06F40 ? 000000000 ?
                                                   7FCC4AF3F060 ? 000000000 ?
                                                   000000001 ? B38F0000000031 ?
opitca()+3495        call     qkadrv()             7FCC4ADD28C8 ? 000000001 ?
                                                   7FCC4AF3F060 ? 000000000 ?
                                                   000000001 ? B38F0000000031 ?
kksFullTypeCheck()+  call     opitca()             7FCC45AFF150 09A38F4D0
81                                                 7FFEC6D56F90 000000000 ?
                                                   000000001 ? B38F0000000031 ?
rpiswu2()+2056       call     kksFullTypeCheck()   7FFEC6D56238 ? 000000000
                                                   7FFEC6D56F90 ? 000000000 ?
                                                   000000001 ? B38F0000000031 ?
kksSetBindType()+19  call     rpiswu2()            7FFEC6D56238 ? 000000000 ?
97                                                 7FFEC6D56F90 ? 000000000 ?
                                                   7FCC4AF93300 ?
                                                   B38F0000000031 ?
kksfbc()+15169       call     kksSetBindType()     7FFEC6D56238 ? 7FCC45AFF150
                                                   7FFEC6D56F90 ? 000000102
                                                   7FCC4AF93300 ?
                                                   B38F0000000031 ?
opiexe()+3209        call     kksfbc()             7FCC45AFF150 7FCC45AFF150 ?
                                                   7FFEC6D56F90 ? 000000102 ?
                                                   7FCC4AF93300 ?
                                                   B38F0000000031 ?
opipls()+2125        call     opiexe()             7FCC45AFF150 ? 7FCC45AFF150 ?
                                                   7FFEC6D58A20 000000102 ?
                                                   7FCC4AF93300 ?
                                                   B38F0000000031 ?
opiodr()+1256        call     opipls()             7FCC45AFF150 ? 7FCC45AFF150 ?
                                                   7FFEC6D5AAF0 000000102 ?
                                                   7FCC4AF93300 ?
                                                   B38F0000000031 ?
rpidrus()+199        call     opiodr()             000000066 000000004
                                                   7FFEC6D5AAF0 ? 000000017
                                                   7FCC4AF93300 ?
                                                   B38F0000000031 ?
skgmstack()+53       call     rpidrus()            7FFEC6D59828 000000004 ?
                                                   7FCC4AF3F2A8 000000017 ?
                                                   7FCC4AF93300 ?
                                                   B38F0000000031 ?
rpidru()+134         call     skgmstack()          7FFEC6D59828 ? 000000004 ?
                                                   7FCC4AF3F2A8 ? 000000017 ?
                                                   7FCC4AF93300 ?
                                                   B38F0000000031 ?
rpiswu2()+580        call     rpidru()             7FFEC6D5A0B8 ? 000000004 ?
                                                   7FCC4AF3F2A8 ? 000000017 ?
                                                   7FCC4AF93300 ?
                                                   B38F0000000031 ?
rpidrv()+1335        call     rpiswu2()            7FFEC6D5A0B8 ? 000000004 ?
                                                   7FCC4AF3F2A8 ? 000000017 ?
                                                   7FCC4AF93300 ?
                                                   B38F0000000031 ?
psddr0()+467         call     rpidrv()             000000017 000000066
                                                   7FFEC6D5AAF0 000000039
                                                   7FCC4AF93300 ?
                                                   B38F0000000031 ?
psdnal()+624         call     psddr0()             000000017 000000066
                                                   7FFEC6D5AAF0 000000030
                                                   7FCC4AF3F2A8 000000001
pevm_EXECC()+328     call     psdnal()             7FCC2EC28758 000000066 ?
                                                   7FFEC6D5AAF0 ? 7FCC45B87318
                                                   000000000 ? 7FCC459899C0
pfrinstr_EXECC()+56  call     pevm_EXECC()         7FCC2EC28990 000000066 ?
                                                   000000020 ? 7FCC45B87318 ?
                                                   7FCC45B87318 7FCC459899C0 ?
pfrrun_no_tool()+60  call     pfrinstr_EXECC()     7FCC2EC28990 ? 122C151BC
                                                   7FCC2EC28A00 ? 7FCC45B87318 ?
                                                   7FCC45B87318 ? 7FCC459899C0 ?
pfrrun()+904         call     pfrrun_no_tool()     7FCC2EC28990 ? 122C151BC ?
                                                   7FCC2EC28A00 ? 7FCC45B87318 ?
                                                   7FCC45B87318 ? 7FCC459899C0 ?
plsql_run()+755      call     pfrrun()             7FCC2EC28990 122C151BC ?
                                                   7FCC2EC28A00 ? 7FCC2EC28758
                                                   12B07F342 7FCC459899C0 ?
peidxr_run()+259     call     plsql_run()          7FCC2EC28990 000000002
                                                   7FCC456883A8 7FCC2EC28758 ?
                                                   12B07F342 ? 7FCC459899C0 ?
peidxexe()+63        call     peidxr_run()         7FCC2EC286E0 000000002
                                                   7FCC456883A8 7FCC2EC28758
                                                   12B07F342 ? 7FCC459899C0 ?
kkxdexe()+629        call     peidxexe()           7FCC2EC286E0 ? 000000002 ?
                                                   7FCC456883A8 ? 7FCC2EC28758 ?
                                                   12B07F342 ? 7FCC459899C0 ?
kkxmpexe()+305       call     kkxdexe()            7FCC2EC286E0 7FCC45688540
                                                   7FCC2ECC66A0 7FCC2EC28758 ?
                                                   12B07F342 ? 7FCC459899C0 ?
kgmexwi()+572        call     kkxmpexe()           7FCC4AF3F060 124B68720
                                                   7FCC45989F48 7FCC2EC286E0
                                                   1314B32B8 7FCC2ECC66A0
kgmexec()+1644       call     kgmexwi()            7FCC4AF3F060 000000001
                                                   7FFEC6D5CCCC 124B68720
                                                   7FCC45989F48 7FCC45989FC8
evapls()+1121        call     kgmexec()            7FCC4AF3F060 7FCC2ECC66A0
                                                   000000001 7FFEC6D5CCCC
                                                   1071C3C00 108FDE558
evaopn2()+829        call     evapls()             7FCC4AF3F060 ? 7FCC2ECC66A0 ?
                                                   7FCC4AF86570 7FFEC6D5CCCC ?
                                                   1071C3C00 ? 108FDE558 ?
qerocnFetch()+384    call     evaopn2()            108FDC3F0 ? 7FCC2ECC66A0 ?
                                                   7FCC4AF86570 ? 7FFEC6D5CCCC ?
                                                   1071C3C00 ? 108FDE558 ?
qerocFetch()+220     call     qerocnFetch()        108FDCC20 7FCC2DEFB938
                                                   014F6F100 7FFEC6D5D5C0
                                                   000000064 108FDE558 ?
opifch2()+3564       call     qerocFetch()         108FDCC20 7FCC2DEFB938
                                                   014F6F100 7FFEC6D5D5C0
                                                   000000064 7FCC4AF93300
kpoal8()+4232        call     opifch2()            108FDCC20 ? 7FCC2DEFB938 ?
                                                   7FFEC6D5D990 7FFEC6D5D5C0 ?
                                                   000000064 ? 7FCC4AF93300 ?
opiodr()+1256        call     kpoal8()             00000005E 000000026
                                                   7FFEC6D61530 7FFEC6D5D5C0 ?
                                                   000000064 ? 7FCC4AF93300 ?
ttcpip()+1257        call     opiodr()             00000005E 000000026
                                                   7FFEC6D61530 ? 000000014
                                                   000000064 ? 7FCC4AF93300 ?
opitsk()+1906        call     ttcpip()             7FCC4AF6CAB0 ? 000000026 ?
                                                   7FFEC6D61530 000000000 ?
                                                   7FFEC6D60F90 7FFEC6D61778 ?
opiino()+1008        call     opitsk()             000000000 000000000
                                                   7FFEC6D61530 ? 000000000 ?
                                                   7FFEC6D60F90 ? 7FFEC6D61778 ?
opiodr()+1256        call     opiino()             00000003C 000000004
                                                   7FFEC6D63108 000000000 ?
                                                   7FFEC6D60F90 ? 7FFEC6D61778 ?
opidrv()+1067        call     opiodr()             00000003C 000000004
                                                   7FFEC6D63108 ? 000000000
                                                   7FFEC6D60F90 ? 7FFEC6D61778 ?
sou2o()+165          call     opidrv()             00000003C 000000004
                                                   7FFEC6D63108 000000000 ?
                                                   7FFEC6D60F90 ? 7FFEC6D61778 ?
opimai_real()+400    call     sou2o()              7FFEC6D63031 00000003C
                                                   000000004 7FFEC6D63108
                                                   7FFEC6D60F90 ? 7FFEC6D61778 ?
ssthrdmain()+412     call     opimai_real()        000000000 7FFEC6D63908
                                                   000000004 ? 7FFEC6D63108 ?
                                                   7FFEC6D60F90 ? 7FFEC6D61778 ?
main()+292           call     ssthrdmain()         000000000 000000002
                                                   7FFEC6D63908 000000001
                                                   000000000 7FFEC6D61778 ?
__libc_start_main()  call     main()               000000002 7FFEC6D63B08
+243                                               7FFEC6D63908 ? 000000001 ?
                                                   000000000 ? 7FFEC6D61778 ?
_start()+46          call     __libc_start_main()  000E90FA0 000000002
                                                   7FFEC6D63B08 007CB35E0 ?
                                                   000000000 ? 7FFEC6D61778 ?
[TOC00006-END]

[TOC00007]

The problematic query appears to the select statement over schema metadata contained in the YADAMU_EXPORT.GET_SCHEMA_METADATA() procedure

markddrake commented 10 months ago

Metadata query has been rewritten to use json_arrayagg in 21c and later.