oracle所有表中文与字段最大长度检测

用于Oracle数据库国产化为TiDB,由于国产化TiDB数据库与Oracle字段存储长度存在差异,需要在信创时做好转换

-- 中文检测

-- 执行该SQL生成所有相关字段的查询脚本

-- 每个字段对应一条SQL语句

-- 每条语句执行的结果包含 表名/字段名/包含中文行数(大于零代表包含中文)

sql 复制代码
SELECT 
	'SELECT '''||TABLE_NAME||''' AS TABLE_NAME ,  '''||COLUMN_NAME||''' AS COLUMN_NAME , SUM(CASE WHEN NVL(LENGTH( '||COLUMN_NAME ||'),0)< NVL(LENGTHB('||COLUMN_NAME||'),0) THEN 1 ELSE 0 END ) AS CHN_CHECK FROM 	YOUR_SCHEMA_NAME.'||TABLE_NAME||' WHERE '||COLUMN_NAME||' IS NOT NULL ;' AS CHARSET_SQL
FROM 
	DBA_TAB_COLS
WHERE 
	OWNER IN ('YOUR_SCHEMA_NAME')
	AND USER_GENERATED='YES'
	AND TABLE_NAME NOT LIKE 'BIN$%'
	AND TABLE_NAME NOT LIKE 'T/_%' ESCAPE '/'
	AND TABLE_NAME NOT LIKE 'TT/_%' ESCAPE '/'
	AND TABLE_NAME NOT LIKE '%/_BAK/_%' ESCAPE '/'
	AND TABLE_NAME NOT LIKE '%/_BAK' ESCAPE '/'
	AND TABLE_NAME NOT LIKE '%/_TMP/_%' ESCAPE '/'
	AND TABLE_NAME NOT LIKE 'TMP/_%' ESCAPE '/'
	AND DATA_TYPE='VARCHAR2';

-- 字段最大长度检测

-- 执行该SQL生成所有相关字段的查询脚本

-- 每个字段对应一条SQL语句

-- 每条语句执行的结果包含 表名/字段名/最大字符数

sql 复制代码
```sql
SELECT 
	'SELECT '''||TABLE_NAME||''' AS TABLE_NAME ,  '''||COLUMN_NAME||''' AS COLUMN_NAME ,  MAX(NVL(LENGTH( '||COLUMN_NAME||'),0)) AS MAX_LENGTH FROM YOUR_SCHEMA_NAME.'||TABLE_NAME||' WHERE '||COLUMN_NAME||' IS NOT NULL ;' AS LENGTH_SQL
FROM 
	DBA_TAB_COLS
WHERE 
	OWNER IN ('YOUR_SCHEMA_NAME')
	AND USER_GENERATED='YES'
	AND TABLE_NAME NOT LIKE 'BIN$%'
	AND TABLE_NAME NOT LIKE 'T/_%' ESCAPE '/'
	AND TABLE_NAME NOT LIKE 'TT/_%' ESCAPE '/'
	AND TABLE_NAME NOT LIKE '%/_BAK/_%' ESCAPE '/'
	AND TABLE_NAME NOT LIKE '%/_BAK' ESCAPE '/'
	AND TABLE_NAME NOT LIKE '%/_TMP/_%' ESCAPE '/'
	AND TABLE_NAME NOT LIKE 'TMP/_%' ESCAPE '/'	
	AND DATA_TYPE='VARCHAR2';
复制代码
相关推荐
坚定信念,勇往无前1 小时前
mongodb的日志分割
数据库·mongodb
oradh4 小时前
Oracle TX 锁 Mode 4(Share)问题排查总结
数据库·oracle·tx 锁 mode 4·oracle tx 锁
yi.Ist5 小时前
数据定义语言-DDL操作
数据库·学习·mysql·oracle·大海豚
2601_963282776 小时前
工程项目、政企采购为什么优先选择对讲机批量采购?
数据库
Doraemomo6 小时前
SQLite数据库
数据库·sqlite
云贝教育-郑老师7 小时前
MySQL 的“黑匣子“:Performance Schema 把数据库内部变成一张可查的表
数据库·mysql
这个DBA有点耶9 小时前
同城双活落地的三座山:网络延迟、脑裂预防、反向同步
数据库·架构·dba
青春之我_XP9 小时前
MySQL 常用日期函数 实战指南
数据库·sql·mysql·数据分析·数据库开发·日期函数
Nturmoils9 小时前
sys_dump 备了库,角色和权限别漏在外面
数据库