同步操作执行后,再次比对数据库,数据库侧还是原来的

Viewed 27

image.png
数据库实际已经更新为80,但再次比对还是第一次加载出来的长度?哪里设置有问题吗?

2 Answers

考虑到其他数字类型的长度,修改成以下:日期类型遇到后再测试!

SELECT
    col.owner AS schema_name,
	col.table_name AS tbl_def_key,
	col.column_id AS order_value,
	col.column_name AS def_key,
	clc.comments AS def_name,
	'' AS intro,
	col.data_type AS db_data_type,
  nvl(col.DATA_PRECISION,col.CHAR_LENGTH) AS data_len,
	col.data_scale AS num_scale,
	decode(col.nullable,'Y',0,1) AS not_null,
	CASE WHEN cc.constraint_name IS NOT NULL THEN 1 ELSE 0 END AS primary_key,
	'' AS auto_increment,
	col.data_default AS default_value
FROM
	all_tab_columns col LEFT JOIN all_col_comments clc ON col.OWNER = clc.OWNER AND col.table_name = clc.table_name  AND col.column_name = clc.column_name 
	                    LEFT JOIN (all_cons_columns cc JOIN all_constraints cs ON cc.constraint_name = cs.constraint_name AND cc.owner = cs.owner and cs.constraint_type = 'P') on col.owner=cc.owner and col.table_name=cc.table_name and col.column_name = cc.column_name
WHERE
	col.owner in (:schemaName)
	AND CONCAT(CONCAT(col.owner, '.') , col.table_name) in (:sysTableNames)
ORDER BY
	col.owner ASC, col.table_name ASC,col.column_id ASC 

是元数据查询的模板有问题,你可以手动修改下改模板内容:

1.找到oracle数据库
image.png

2.找到查询表字段的模板
49400f1b-c62c-4d55-abe1-be989bdedea0.png

3.用下面的内容将模板替换掉

SELECT
    col.owner AS schema_name,
	col.table_name AS tbl_def_key,
	col.column_id AS order_value,
	col.column_name AS def_key,
	clc.comments AS def_name,
	'' AS intro,
	col.data_type AS db_data_type,
	CASE DATA_TYPE
      WHEN 'NUMBER' THEN DATA_PRECISION
      WHEN 'BINARY_DOUBLE' THEN DATA_LENGTH
      ELSE CHAR_LENGTH
    END AS data_len,
	col.data_scale AS num_scale,
	decode(col.nullable,'Y',0,1) AS not_null,
	CASE WHEN cc.constraint_name IS NOT NULL THEN 1 ELSE 0 END AS primary_key,
	'' AS auto_increment,
	col.data_default AS default_value
FROM
	all_tab_columns col LEFT JOIN all_col_comments clc ON col.OWNER = clc.OWNER AND col.table_name = clc.table_name  AND col.column_name = clc.column_name 
	                    LEFT JOIN (all_cons_columns cc JOIN all_constraints cs ON cc.constraint_name = cs.constraint_name AND cc.owner = cs.owner and cs.constraint_type = 'P') on col.owner=cc.owner and col.table_name=cc.table_name and col.column_name = cc.column_name
WHERE
	col.owner in (:schemaName)
	AND CONCAT(CONCAT(col.owner, '.') , col.table_name) in (:sysTableNames)
ORDER BY
	col.owner ASC, col.table_name ASC,col.column_id ASC