shaohui hong created FLINK-36776:
------------------------------------

             Summary: OracleIncrementalSource does not support partitioned table
                 Key: FLINK-36776
                 URL: https://issues.apache.org/jira/browse/FLINK-36776
             Project: Flink
          Issue Type: Bug
          Components: Flink CDC
    Affects Versions: 3.0.0
            Reporter: shaohui hong


In OracleConnectionUtils.java, a function named listTables gets all table names 
from database, and uses a table filter to exclude all tables that are not 
configured to be captured. If a partitioned table is created in oracle 
database, a record is added to ALL_TABLES view, but the TABLESPACE_NAME of this 
record is null, which causes the query to get all tables in the database does 
not return this partitioned table, as the where condition of sql that is used 
in the query has "TABLESPACE_NAME is not null".

The solution is chaning the queryTableSql defined in OracleConnectionUtils 
listTables function from

"SELECT OWNER ,TABLE_NAME,TABLESPACE_NAME FROM ALL_TABLES \n"
                        + "WHERE TABLESPACE_NAME IS NOT NULL AND 
TABLESPACE_NAME NOT IN ('SYSTEM','SYSAUX') AND NESTED = 'NO' AND TABLE_NAME NOT 
IN (SELECT PARENT_TABLE_NAME FROM ALL_NESTED_TABLES)";

to

"SELECT OWNER ,TABLE_NAME,TABLESPACE_NAME FROM ALL_TABLES \n"
                        + "WHERE (TABLESPACE_NAME IS NULL OR TABLESPACE_NAME 
NOT IN ('SYSTEM','SYSAUX'))  AND NESTED = 'NO' AND TABLE_NAME NOT IN (SELECT 
PARENT_TABLE_NAME FROM ALL_NESTED_TABLES)";

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to