diff --git a/oceanbasev10reader/src/main/java/com/alibaba/datax/plugin/reader/oceanbasev10reader/util/ObReaderUtils.java b/oceanbasev10reader/src/main/java/com/alibaba/datax/plugin/reader/oceanbasev10reader/util/ObReaderUtils.java index d7b8f2edfb..cca2f66c90 100644 --- a/oceanbasev10reader/src/main/java/com/alibaba/datax/plugin/reader/oceanbasev10reader/util/ObReaderUtils.java +++ b/oceanbasev10reader/src/main/java/com/alibaba/datax/plugin/reader/oceanbasev10reader/util/ObReaderUtils.java @@ -154,12 +154,14 @@ private static String[] getPkColumns(Connection conn, TaskContext context) { } else { schema = "(select sys_context('USERENV','current_schema') from dual)"; } + //OceanBase oracle模式下需要使用position排序获取正确的联合主键顺序 sql = String.format( "SELECT cols.column_name Column_name " + "FROM all_constraints cons, all_cons_columns cols " + "WHERE cols.table_name = '%s' AND cons.constraint_type = 'P' " + "AND cons.constraint_name = cols.constraint_name " + - "AND cons.owner = cols.owner and cons.OWNER = %s", + "AND cons.owner = cols.owner and cons.OWNER = %s " + + "order by cols.position " , tableName, schema); } LOG.info("get primary key by sql: " + sql);