9

So far, any table that has a column name longer than 30 characters gives an UNSUPPORTED Operation when querying V$LOGMNR_CONTENTS

If I drop the column or adjust the size to be <=30 then all the CRUD operations are reported fine.

In Oracle 12.2 128 Character Objects are supported, so I'm trying to understand if I've configured something wrong. Endless googling has gotten me nowhere, nor has the Oracle documentation.

Thanks in advance!

Edit

Just checked 19c, same behaviour. Compatability set at 19.0.0

EDIT

Been a lot of comments regarding the use of supplemental logging, but can't create the same scenario as the accepted answer.

Either way, given Oracle have now said it'll never be supported it doesn't matter too much!

Test I ran where it's still failing to work

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
        
SELECT supplemental_log_data_min, supplemental_log_data_pk 
FROM V$Database;
        
SUPPLEME SUP
-------- --- 
YES      NO
        
CREATE TABLE "REPLICATION_OWNER"."ATABLEWITHQUITEALONGNAMELIKEVERYLONGACTUALLY"  (  
   "ID" NUMBER(10,0), 
   "NAME" VARCHAR2(254 BYTE) 
);
            
ALTER TABLE "REPLICATION_OWNER"."ATABLEWITHQUITEALONGNAMELIKEVERYLONGACTUALLY" MODIFY ("ID" NOT NULL ENABLE); 
    
ALTER TABLE "REPLICATION_OWNER"."ATABLEWITHQUITEALONGNAMELIKEVERYLONGACTUALLY" MODIFY ("NAME" NOT NULL ENABLE);    
    
INSERT INTO atablewithquitealongnamelikeverylongactually VALUES (1, 'My Name');
        
DECLARE  CURSOR LogMinerFileCursor IS  
SELECT LogFile 
FROM (      
       SELECT V$LOGFILE.Member AS LogFile,
              FIRST_CHANGE# AS FirstSCN,
              NEXT_CHANGE# AS LastSCN       
       FROM V$LOGFILE       
       INNER JOIN V$LOG ON V$LOGFILE.GROUP# = V$LOG.GROUP#      
       WHERE V$LOG.STATUS <> 'UNUSED'       
       AND FIRST_CHANGE# >= (SELECT RESETLOGS_CHANGE# FROM V$DATABASE)      
       UNION ALL        
       SELECT Name AS LogFile,
              FIRST_CHANGE# AS FirstSCN,
              NEXT_CHANGE# AS LastSCN       
       FROM V$ARCHIVED_LOG      
       WHERE FIRST_CHANGE# < (
                              SELECT MIN(FIRST_CHANGE#) 
                              FROM V$LOGFILE
                              INNER JOIN V$LOG ON V$LOGFILE.GROUP# = V$LOG.GROUP#
                              WHERE V$LOG.STATUS <> 'UNUSED'
                             ) AND FIRST_CHANGE# >= (SELECT RESETLOGS_CHANGE# FROM V$DATABASE)   
) LogFiles WHERE FirstSCN >= 0 OR LastSCN > 0; 



sDDL    varchar2(2000);
        
BEGIN  FOR LogMinerFileCursorRecords in LogMinerFileCursor    LOOP
 
    sDDL := 'BEGIN DBMS_LOGMNR.ADD_LOGFILE('''|| LogMinerFileCursorRecords.LogFile ||'''); END;';

    DBMS_OUTPUT.Put_Line(sDDL);       
    execute immediate sDDL;  
END LOOP; 
COMMIT; 
END; 

BEGIN DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG +  + DBMS_LOGMNR.COMMITTED_DATA_ONLY ); END;
        
 SELECT SQL_REDO AS RedoSQL 
FROM V$LOGMNR_CONTENTS 
WHERE SEG_OWNER = 'REPLICATION_OWNER' 
AND TABLE_NAME = 'ATABLEWITHQUITEALONGNAMELIKEVERYLONGACTUALLY'
        
REDOSQL
--------------------------------------------------------------------------------
        
CREATE TABLE "REPLICATION_OWNER"."ATABLEWITHQUITEALONGNAMELIKEVERYLONGACTUALLY"
(    
  "ID" NUMBER(10,0),
  "NAME" VARCHAR2(254 BYTE)    
) 
SEGMENT CREATION IMMEDIATE   
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255  
NOCOMPRESS 
LOGGING   
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   
TABLESPACE "REPLICATION_DATA";
        
REDOSQL
-------------------------------------------------------------------------------- ALTER TABLE "REPLICATION_OWNER"."ATABLEWITHQUITEALONGNAMELIKEVERYLONGACTUALLY" M ODIFY ("ID" NOT NULL ENABLE);
        
REDOSQL
-------------------------------------------------------------------------------- ALTER TABLE "REPLICATION_OWNER"."ATABLEWITHQUITEALONGNAMELIKEVERYLONGACTUALLY" M ODIFY ("NAME" NOT NULL ENABLE);
        
REDOSQL
-------------------------------------------------------------------------------- Unsupported
        
BEGIN DBMS_LOGMNR.END_LOGMNR; END;
  • 2
    I'm seeing the same problem on a new 12.2 instance with default settings. The cynical side of me says there will never be a solution to this problem as Oracle seems to be trying to kill LogMiner and force people to buy GoldenGate instead. But hopefully I'm wrong and there is a way to make it work. – Jon Heller Apr 09 '20 at 03:27
  • I think, the problem is with [Long Identifier](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/newft/new-features.html#GUID-64283AD6-0939-47B0-856E-5E9255D7246B). As per [OraDocs](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/Database-Object-Names-and-Qualifiers.html#GUID-75337742-67FD-4EC0-985F-741C93D918DA) :`The maximum length of identifier names depends on the value of the COMPATIBLE initialization parameter. `. So, setting compatible to 12.2 should resolve the issue. – bprasanna Apr 10 '20 at 05:24
  • 1
    It's set at 12.2, so not that. – Brandon Billingham Apr 10 '20 at 08:02
  • Just checked 19c, same behaviour. Compatability set at 19.0.0 – Brandon Billingham Apr 10 '20 at 13:44
  • 1
    @JonHeller Trust me, even on 19c they are pushing customers to go for GoldenGate. – Lalit Kumar B Apr 14 '20 at 15:39
  • Are you getting UNSUPPORTED in the column SEG_NAME ? – Roberto Hernandez Jul 19 '20 at 14:17
  • No, I'm getting UNSUPPORTED in the column SQL_REDO – Brandon Billingham Jul 20 '20 at 09:47
  • @JonHeller out of interest when you set this up to test was it on Windows? – Brandon Billingham Jul 23 '20 at 12:08
  • I've had the problem on both Linux and Windows. Oddly, Roberto's test case works correctly for me. When I ran into this problem before I was using different logminer options, like continuous mining maybe, but I can't remember all the details. – Jon Heller Jul 23 '20 at 14:10
  • @JonHeller Interesting. Do you have supplemental logging turned on as well? Which oracle edition were you using when it worked? – Brandon Billingham Jul 26 '20 at 12:36
  • @BrandonBillingham I experienced the problem on Enterprise Edition, where these V$DATABASE columns were all set to 'YES': SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI, and FORCE_LOGGING. – Jon Heller Jul 26 '20 at 18:51
  • Yep, this is what I found as well. Even with minimal logging turned on I also had the issue. I think Roberto is raising an SR to see if this is expected to work. – Brandon Billingham Jul 27 '20 at 10:38

3 Answers3

3

NEW UPDATE

I confirmed a few days that this was a bug. Unfortunately, now the support team is telling me the following:

"It’s not a bug. As of 12.2 new types/features are only supported for dbms_rolling and golden gate." Conclusion, tables with names greater than 30 characters will not be supported on LogMiner, even if supplemental_logging is disabled. They are going to update the documentation. I will update the answer as long as I have more details regarding this.

SQL> select supplemental_log_data_min, supplemental_log_data_pk from v$database;

SUPPLEME SUP
-------- ---
YES YES

In this case, it will always show UNSUPPORTED for any DML operation when the table has a name with more than 30 characters.

SQL> select * from v$version ;

BANNER
--------------------------------------------------------------------------------
    CON_ID
----------
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
         0

PL/SQL Release 12.2.0.1.0 - Production
         0

CORE    12.2.0.1.0      Production
         0


BANNER
--------------------------------------------------------------------------------
    CON_ID
----------
TNS for Linux: Version 12.2.0.1.0 - Production
         0

NLSRTL Version 12.2.0.1.0 - Production
         0

Let's start the test case

SQL> create table cpl_rep.my_table_with_a_very_long_name_with_more ( c1 number );

Table created.

SQL> insert into cpl_rep.my_table_with_a_very_long_name_with_more values ( 1 ) ;

1 row created.

SQL> insert into cpl_rep.my_table_with_a_very_long_name_with_more values ( 2 ) ;

1 row created

SQL> commit;

Commit complete.

SQL> select length(table_name) from dba_tables where table_name =  upper('my_table_with_a_very_long_name_with_more');

LENGTH(TABLE_NAME)
------------------
                40

SQL>

Then I start my logminer session, first I switch my logfile

SQL> alter system switch logfile ;

System altered.

SQL> exit

Then I enter again to open my logminer session

SQL> exec dbms_logmnr.add_logfile('/bbdd_odcgrc1r/redo1/redo11.ora' , 1);
 exec dbms_logmnr.add_logfile('/bbdd_odcgrc1r/redo2/redo21.ora' , 1);
 exec dbms_logmnr.add_logfile('/bbdd_odcgrc1r/redo1/redo12.ora' , 1);
 exec dbms_logmnr.add_logfile('/bbdd_odcgrc1r/redo2/redo22.ora' , 1);
 exec dbms_logmnr.add_logfile('/bbdd_odcgrc1r/redo1/redo13.ora' , 1);
 exec dbms_logmnr.add_logfile('/bbdd_odcgrc1r/redo2/redo23.ora' , 1);

PL/SQL procedure successfully completed.

SQL>
PL/SQL procedure successfully completed.

SQL>
PL/SQL procedure successfully completed.

SQL>
PL/SQL procedure successfully completed.

SQL>
PL/SQL procedure successfully completed.

SQL>
PL/SQL procedure successfully completed.


SQL> exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);

PL/SQL procedure successfully completed.

SQL>  select count(*) from v$logmnr_contents where seg_name =  upper('my_table_with_a_very_long_name_with_more');

  COUNT(*)
----------
         3

SQL> select operation,seg_name,sql_redo from v$logmnr_contents where seg_name =  upper('my_table_with_a_very_long_name_with_more');

OPERATION
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
SQL_REDO
--------------------------------------------------------------------------------
DDL
MY_TABLE_WITH_A_VERY_LONG_NAME_WITH_MORE
create table cpl_rep.my_table_with_a_very_long_name_with_more ( c1 number );

OPERATION
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
SQL_REDO
--------------------------------------------------------------------------------

INSERT
MY_TABLE_WITH_A_VERY_LONG_NAME_WITH_MORE
insert into "CPL_REP"."MY_TABLE_WITH_A_VERY_LONG_NAME_WITH_MORE"("C1") values ('
1');

OPERATION
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
SQL_REDO
--------------------------------------------------------------------------------
INSERT
MY_TABLE_WITH_A_VERY_LONG_NAME_WITH_MORE
insert into "CPL_REP"."MY_TABLE_WITH_A_VERY_LONG_NAME_WITH_MORE"("C1") values ('
2');

So, as you can see, in my case, there is no such thing as a limitation for 30 characters when the element affected is a table.

Let's see when the element is a column

SQL> create table cpl_rep.table_with_name_greater_than_30_characters ( column_greater_than_30_characters_test_case number );

Table created.

SQL> select length('table_with_name_greater_than_30_characters') , length('column_greater_than_30_characters_test_case') from dual ;

LENGTH('TABLE_WITH_NAME_GREATER_THAN_30_CHARACTERS')
----------------------------------------------------
LENGTH('COLUMN_GREATER_THAN_30_CHARACTERS_TEST_CASE')
-----------------------------------------------------
                                                  42
                                                   43



SQL> insert into cpl_rep.table_with_name_greater_than_30_characters values ( 1 );

1 row created.

SQL> r
  1* insert into cpl_rep.table_with_name_greater_than_30_characters values ( 1 )

1 row created.

SQL> commit;

Commit complete.

SQL> insert into cpl_rep.table_with_name_greater_than_30_characters values ( 2 );

1 row created.

SQL> r
  1* insert into cpl_rep.table_with_name_greater_than_30_characters values ( 2 )

1 row created.

SQL> commit;

Commit complete.

SQL> delete from cpl_rep.table_with_name_greater_than_30_characters where column_greater_than_30_characters_test_case=2 ;

2 rows deleted.

SQL> commit;

Commit complete.

$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Sun Jul 19 17:07:58 2020

Copyright (c) 1982, 2016, Oracle.  All rights reserved.
    
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> exec dbms_logmnr.add_logfile('/bbdd_odcgrc1r/redo1/redo11.ora' , 1);
     exec dbms_logmnr.add_logfile('/bbdd_odcgrc1r/redo2/redo21.ora' , 1);
     exec dbms_logmnr.add_logfile('/bbdd_odcgrc1r/redo1/redo12.ora' , 1);
     exec dbms_logmnr.add_logfile('/bbdd_odcgrc1r/redo2/redo22.ora' , 1);
     exec dbms_logmnr.add_logfile('/bbdd_odcgrc1r/redo1/redo13.ora' , 1);
     exec dbms_logmnr.add_logfile('/bbdd_odcgrc1r/redo2/redo23.ora' , 1);
PL/SQL procedure successfully completed.

SQL>
PL/SQL procedure successfully completed.

SQL>
PL/SQL procedure successfully completed.

SQL>
PL/SQL procedure successfully completed.

SQL>
PL/SQL procedure successfully completed.

SQL>

PL/SQL procedure successfully completed.

SQL>
SQL> exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);

PL/SQL procedure successfully completed.

SQL> select count(*) from v$logmnr_contents where seg_owner = 'CPL_REP' and seg_name = upper('table_with_name_greater_than_30_characters') ;

  COUNT(*)
----------
         3

SQL> select operation,seg_name,sql_redo from v$logmnr_contents where seg_owner = 'CPL_REP' and seg_name = upper('table_with_name_greater_than_30_characters') ;

OPERATION
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
SQL_REDO
--------------------------------------------------------------------------------
DDL
TABLE_WITH_NAME_GREATER_THAN_30_CHARACTERS
create table cpl_rep.table_with_name_greater_than_30_characters ( column_greater
_than_30_characters_test_case number );

INSERT
TABLE_WITH_NAME_GREATER_THAN_30_CHARACTERS

OPERATION
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
SQL_REDO
--------------------------------------------------------------------------------
insert into "CPL_REP"."TABLE_WITH_NAME_GREATER_THAN_30_CHARACTERS"("COLUMN_GREAT
ER_THAN_30_CHARACTERS_TEST_CASE") values ('1');

INSERT
TABLE_WITH_NAME_GREATER_THAN_30_CHARACTERS
insert into "CPL_REP"."TABLE_WITH_NAME_GREATER_THAN_30_CHARACTERS"("COLUMN_GREAT
ER_THAN_30_CHARACTERS_TEST_CASE") values ('1');

OPERATION
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
SQL_REDO
--------------------------------------------------------------------------------

So, in my case, I can operate with both columns and tables greater than 30 characters.

UPDATE

After the comments sections, I decided to try the test with SUPPLEMENTAL_LOGGING and it works. However, when I add SUPPLEMENTAL_LOGGING for all columns PK, then it does not work

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

Database altered.

SQL> select supplemental_log_data_min, supplemental_log_data_pk from v$database;

SUPPLEME SUP
-------- ---
YES      NO

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

Database altered.

SQL>  select supplemental_log_data_min, supplemental_log_data_pk from v$database;

SUPPLEME SUP
-------- ---
YES      YES

SQL> create table cpl_rep.my_test_with_a_very_very_long_name_for_test ( c1 number ) ;

Table created.

   
SQL> insert into cpl_rep.my_test_with_a_very_very_long_name_for_test values ( 1 ) ;

1 row created.

SQL> insert into cpl_rep.my_test_with_a_very_very_long_name_for_test values ( 2 ) ;

1 row created.

SQL> commit ;

Commit complete.

SQL> insert into cpl_rep.my_test_with_a_very_very_long_name_for_test values ( 3 ) ;

1 row created.

SQL> commit;

Commit complete.


SQL> delete from cpl_rep.my_test_with_a_very_very_long_name_for_test where c1 = 3 ;

1 row deleted.

SQL>

Switch logfile and start logminer. The contents show now the value UNSUPPORTED.

SQL> select sql_redo , operation, seg_name from v$logmnr_contents where seg_name = upper('my_test_with_a_very_very_long_name_for_test') ;

SQL_REDO
--------------------------------------------------------------------------------
OPERATION
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
create table cpl_rep.my_test_with_a_very_very_long_name_for_test ( c1 number ) ;
DDL
MY_TEST_WITH_A_VERY_VERY_LONG_NAME_FOR_TEST

Unsupported
UNSUPPORTED
MY_TEST_WITH_A_VERY_VERY_LONG_NAME_FOR_TEST

SQL_REDO
--------------------------------------------------------------------------------
OPERATION
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------

Unsupported
UNSUPPORTED
MY_TEST_WITH_A_VERY_VERY_LONG_NAME_FOR_TEST

Unsupported
UNSUPPORTED

SQL_REDO
--------------------------------------------------------------------------------
OPERATION
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
MY_TEST_WITH_A_VERY_VERY_LONG_NAME_FOR_TEST

Unsupported
UNSUPPORTED
MY_TEST_WITH_A_VERY_VERY_LONG_NAME_FOR_TEST


SQL>

The key is clearly SUPPLEMENTAL_LOGGING PK, and also that only affects to DML operations, as DDL show the real command executed.

Roberto Hernandez
  • 8,231
  • 3
  • 14
  • 43
  • The only difference in setup that I can see is perhaps Linux vs Windows. Guessing your Oracle installation is on a Linux distro? – Brandon Billingham Jul 20 '20 at 08:06
  • @BrandonBillingham, indeed both my 12c and 19c were on Linux Red Hat 7 and Oracle LInux respectively. I was very curious about the issue that I ran both test cases, but I could not find any problem with the length of the names. – Roberto Hernandez Jul 20 '20 at 08:15
  • I've ran though the exact same code as you, same table/columns values etc the only difference was the OS and I get UNSUPPORTED in the SQL_REDO column. – Brandon Billingham Jul 20 '20 at 09:48
  • I will ask Support about that and let you know what they answered :) – Roberto Hernandez Jul 20 '20 at 09:49
  • @BrandonBillingham, I just got reply from Support and they said that is supported the same for Windows. If you have support you should open an SR and upload alert log and patch inventory, Perhaps you have a bug that needs to be addressed – Roberto Hernandez Jul 20 '20 at 13:11
  • Unfortunately our partner level doesn't entitle us to raise technical support requests. It's good to know they say it should work, though frustrating to think it hasn't work in 12 or 19c. Not sure what else to try at this point. At the moment we are restricting column and table names in our development but ideally we'd not have to do this. Now you've shown it can work it's reignited the fire to try and resolve! – Brandon Billingham Jul 21 '20 at 06:17
  • The other difference is I see you're using enterprise and I'm using standard. Though given this just controls feature set I find it hard to believe it could be the cause. – Brandon Billingham Jul 23 '20 at 12:14
  • @BrandonBillingham, that is a good clue, when I asked I assumed you have EE edition ;) , so perhaps instead of the OS is this the key factor – Roberto Hernandez Jul 23 '20 at 14:14
  • I'll try a fresh setup tomorrow and see how it goes. – Brandon Billingham Jul 24 '20 at 15:10
  • @BrandonBillingham, let me know how it goes, and good luck ;) – Roberto Hernandez Jul 24 '20 at 15:11
  • can you confirm the logminer settings you used? Just starting to run a few tests now on a fresh setup. – Brandon Billingham Jul 26 '20 at 12:38
  • I did not use any special settings, just load the redo files into log miner as I described in my test case. what exactly do you mean ? – Roberto Hernandez Jul 26 '20 at 13:11
  • So I setup two virgin installations, one enterprise and one on standard. Both work. I went back to my old installation to try and work through the differences and I had the following enabled ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (all) COLUMNS; and subsequently SUPPLEMENTAL_LOG_DATA_MIN was set to YES. As soon as I removed this and re-created the table with 30 CHARS all worked as expected. Why it doesn't work with this turned on I am uncertain. – Brandon Billingham Jul 26 '20 at 17:31
  • @BrandonBillingham, good point. At least, you found the key factor. I will ask out of curiosity why add supplemental log is affecting the behaviour of sql_redo. – Roberto Hernandez Jul 26 '20 at 18:08
  • Let me know what they say interested to know if this is expected to work. FYI - my testing was in 19c. – Brandon Billingham Jul 27 '20 at 10:37
  • So I need PK logging to replicate the data to another database. If I turn this on add a database level it no longer works for tables over 30 characters. If I turn this on at a table level all is well. – Brandon Billingham Jul 29 '20 at 14:14
  • so you need to configure supplemental logging at table level – Roberto Hernandez Jul 29 '20 at 15:48
  • Yep, trying that today. At the moment though, for some strange unknown reason, it's not logging PK's reliably at the table level! – Brandon Billingham Jul 30 '20 at 12:56
  • Seems like I'm out of luck. I need to have SUPPLEMENTAL_LOG_DATA_MIN set to yes at the database level even with the table level PK logging turned on. Without it tables with a PK do not reliably log at all. Really unfortunate this restriction exists, just going to have to force all table/columns to be 30 characters and less. – Brandon Billingham Jul 30 '20 at 16:32
  • I am still waiting for Oracle answer. I will let you know as soon as I know – Roberto Hernandez Jul 30 '20 at 18:28
  • Thanks, appreciate your help! – Brandon Billingham Jul 30 '20 at 21:24
  • @BrandonBillingham, confirmed it is a BUG. From 12c to 20c and still under development. Would you be so kind to accept the answer ? – Roberto Hernandez Aug 10 '20 at 19:37
  • Thanks. Guessing there is no timeline for a fix? Is there a known bug ID to track it? – Brandon Billingham Aug 11 '20 at 10:41
  • @BrandonBillingham, no bug ID at the moment. As soon as I know, I'll let you know by updating the answer – Roberto Hernandez Aug 11 '20 at 11:19
  • @BrandonBillingham, believe it or not, the answer now is that is not a BUG. I will update the answer to reflect the ticket answer – Roberto Hernandez Aug 17 '20 at 15:32
  • Interesting. I can't recreate your behaviour, as soon as I run ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; it becomes unsupported. – Brandon Billingham Aug 17 '20 at 15:59
2

Finally Oracle have opened a bug to this issue: Log Miner Shows SQL_REDO As UNSUPPORTED for table names longer than 30 characters (Doc ID 2703406.1).

No resolution yet though :(

Michael
  • 2,835
  • 2
  • 9
  • 15
1

Just to close the loop on this. Documentation has been updatd in Oracle 21c to specify the limitation.

https://docs.oracle.com/en/database/oracle/oracle-database/21/sutil/oracle-logminer-utility.html#GUID-7594F0D7-0ACD-46E6-BD61-2751136ECDB4

Really dislike how Oracle does their documentation but hey, at least it's there.