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';
复制代码
相关推荐
w-w0w-w2 小时前
SQL注入
网络·数据库·sql
tianyuanwo2 小时前
NetBox 数据库详解:当“关系型数据库”被装进一个网络运维的领域模型里
运维·数据库·netbox
一条泥憨鱼2 小时前
【计算机网络】短连接、长连接与连接池:从 TCP 握手到池化复用的完整链路
网络·数据库·网络协议·tcp/ip·计算机网络
IvorySQL3 小时前
深入 PostgreSQL WAL:从崩溃恢复到逻辑复制
数据库·postgresql
幽灵诶4 小时前
Mysql(基于测试的学习)
数据库·mysql
砚底藏山河4 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
宇宙无敌暴龙战士6664 小时前
MySQL 8 库表操作学习笔记:SQL 基础、库表管理、约束与用户授权全流程
数据库·sql·mysql·学习笔记·后端开发
猿究院_夏燊5 小时前
MySQL 的四种隔离级别
java·数据库·mysql
say_fall5 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
共享家95276 小时前
408 操作系统第一章
服务器·数据库·windows