当前位置: 首页 > news >正文

Oracle转Mysql建表脚本

–Oracle转mysql建表脚本
SELECT
t.column_id,
‘edi_’ || t.table_name AS table_name,
CASE

	WHEN t1.table_name IS NOT NULL THENREPLACE (t.ddl_sql,',',');' 
) ELSE t.ddl_sql 

END AS ddl_sql
FROM
(–拼接建表语句
SELECT
column_id,
table_name,
lower(
CASE

			WHEN nullable = 'N' THENcolumn_name || ' ' || column_type_new || ' NOT NULL COMMENT ' || '''' || column_comments || ''',' ELSE column_name || ' ' || column_type_new || ' COMMENT ' || '''' || column_comments || ''',' END ) AS ddl_sql FROM(---Oracle转mysqlSELECTlower(CASEWHEN column_type  in('VARCHAR2(2000)','VARCHAR2(4000)') THEN'text' WHEN column_type LIKE '%FLOAT%' AND data_precision > 64 THEN'decimal(64)' WHEN column_type LIKE '%FLOAT%' AND data_precision <= 64 THENREPLACE (column_type,'FLOAT','decimal' ) WHEN column_type = 'TIMESTAMP(6)(11)' THEN'timestamp(6)' WHEN column_type LIKE '%CHAR%' THENREPLACE (REPLACE (column_type,'NVARCHAR2','VARCHAR' ),'VARCHAR2','VARCHAR' ) WHEN column_type = 'NUMBER(22)' THEN'bigint' WHEN (column_type LIKE '%NUMBER%,0%' OR column_type LIKE '%FLOAT%' ) AND data_precision > 10 THENREPLACE (REPLACE (column_type,'NUMBER','bigint' ),',0','' ) WHEN column_type LIKE '%NUMBER%,0%' AND data_precision <= 10 THENREPLACE (REPLACE (column_type,'NUMBER','int' ),',0','' ) WHEN column_type LIKE '%NUMBER%' AND column_type NOT LIKE '%NUMBER,0%' THENREPLACE (column_type,'NUMBER','decimal' ) WHEN column_type = 'DATE(7)' THEN'datetime(0)' ELSE column_type END ) AS column_type_new,column_id,table_name,table_comments,column_name,column_comments,data_type,data_length,data_precision,data_scale,nullable FROM(--oracle字段拼接SELECTt2.column_id,t.table_name,t1.comments AS table_comments,t2.column_name,REPLACE (t3.comments,'''','' ) AS column_comments,data_type || '(' ||CASE--number类型特殊处理WHEN data_type NOT IN ('NUMBER','FLOAT' ) THENDATA_LENGTH || (CASEWHEN data_precision IS NOT NULL THEN',' || data_precision || ')' ELSE ')' END ) ELSECASEWHEN data_precision IS NOT NULL THENdata_precision || (CASEWHEN data_scale IS NOT NULL THEN',' || data_scale || ')' ELSE ')' END ) ELSE DATA_LENGTH || (CASEWHEN data_precision IS NOT NULL THEN',' || data_precision || ')' ELSE ')' END ) END END AS column_type,data_type,data_length,data_precision,data_scale,nullable FROMuser_tables tINNER JOIN user_tab_comments t1 ON t.table_name = t1.table_nameINNER JOIN user_tab_columns t2 ON t.table_name = t2.table_nameINNER JOIN user_col_comments t3 ON t.table_name = t3.table_name AND t2.column_name = t3.column_name WHEREt.table_name IN ('TEST') ) n ) m UNION ALLSELECT0 AS column_id,table_name,lower('CREATE TABLE edi_' || table_name || '(' ) AS ddl_sql FROMuser_tables WHEREtable_name IN ('TEST') ) tLEFT JOIN (SELECTtable_name,max(column_id ) AS column_id FROMuser_tab_columns GROUP BYtable_name ) t1 ON t.table_name = t1.table_name AND t.column_id = t1.column_id ORDER BYt.table_name,t.column_id;

–索引
SELECT
m.index_name,
lower(
CASE

		WHEN m.uniqueness = 'UNIQUE' THEN'CREATE UNIQUE INDEX ' || m.index_name || ' ON edi_' || m.table_name || '(' || m.column_name || ')' ELSE 'CREATE INDEX ' || m.index_name || ' ON edi_' || m.table_name || '(' || m.column_name || ')' END ) || ';' AS create_index 
FROM(SELECTt.index_name,t.table_name,t.uniqueness,wm_concat (t1.column_name ) AS column_name FROMuser_indexes tINNER JOIN user_ind_columns t1 ON t.table_name = t1.table_name AND t.index_name = t1.index_name WHEREt.table_name IN ('TEST') GROUP BYt.index_name,t.table_name,t.uniqueness 
) m;
http://www.dtcms.com/a/297234.html

相关文章:

  • Android studio自带的Android模拟器都是x86架构的吗,需要把arm架构的app翻译成x86指令?
  • 【Android Studio】安装Trae插件后Android Studio 启动崩溃问题处理
  • 瑞萨电子RA-T MCU系列新成员RA2T1——电机控制专家
  • CPU(中央处理器)和GPU(图形处理器)的区别
  • vscode npm run build打包报ELIFECYCLE
  • 一文解析公平锁、非公平锁、悲观锁、乐观锁、可重入锁和锁的升级(含详细代码实例)
  • MJ11032G和MJ11033G是对管由onsemi/安森美公司研发的一款高性能、低功耗的达林顿晶体管
  • 能源管理网页的碳中和视觉语言:数据图表中的环保色彩体系创新
  • 基于51单片机的光照强度检测系统Protues仿真设计
  • 卸油管连接检测误报率↓78%:陌讯多模态融合算法实战解析
  • 信息学奥赛一本通 1593:【例 2】牧场的安排 | 洛谷 P1879 [USACO06NOV] Corn Fields G
  • 机器学习——KNN算法
  • SpringBoot与ApacheSpark、MyBatis实战整合
  • DeepSeek FlashMLA 技术拆解,AI 推理迎来颠覆性突破
  • 黑马点评常见面试题
  • Apache Ranger 权限管理
  • Python之--字典
  • CMake进阶: 检查函数/符号存在性、检查类型/关键字/表达式有效性和检查编译器特性
  • LP-MSPM0G3507学习--11ADC之二双通道高速DMA采样
  • rtpengine的docker化
  • Linux进程信号——信号保存
  • 在幸狐RV1106板子上用gcc14.2本地编译安装ssh客户端/服务器、vim编辑器、sl和vsftpd服务器
  • OSI 七层模型和五层模型
  • Vue3 学习教程,从入门到精通,Vue3 监听属性(Watchers)语法知识点及案例代码(16)
  • Unity编辑器拓展 IMGUI与部分Utility知识总结(代码+思维导图)
  • JAVA-09(2025.07.25学习记录)
  • MMRotate ReDet ReFPN 报错 `assert input.type == self.in_type`
  • Franky — 边缘计算智能语音助手 / Edge‑Computing Smart Voice Assistant
  • 04-netty基础-Reactor三种模型
  • docker compose xtify-music-web