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';
复制代码
相关推荐
·云扬·43 分钟前
MySQL Redo Log落盘机制深度解析
数据库·mysql
用户982863025681 小时前
pg内核实现细节
数据库
飞升不如收破烂~1 小时前
Redis 分布式锁+接口幂等性使用+当下流行的限流方案「落地实操」+用户连续点击两下按钮的解决方案自用总结
数据库·redis·分布式
workflower1 小时前
业务需求-假设场景
java·数据库·测试用例·集成测试·需求分析·模块测试·软件需求
亓才孓1 小时前
[JDBC]基于三层架构和MVC架构的JDBCTools
数据库
IT邦德2 小时前
RPM包快速安装Oracle26ai
数据库·oracle
Dovis(誓平步青云)2 小时前
《滑动窗口算法:从 “暴力遍历” 到 “线性高效” 的思维跃迁》
运维·服务器·数据库·算法
mr_LuoWei20092 小时前
python工具:python代码知识库笔记
数据库·python
这周也會开心2 小时前
Redis数据类型的底层实现和数据持久化
数据库·redis·缓存
ん贤2 小时前
一次批量删除引发的死锁,最终我选择不加锁
数据库·安全·go·死锁