oracle脚本一键转hive脚本

这篇博客主要介绍如何将Oracle数据库中的SQL脚本一键转换为适用于Hive的脚本,特别提醒在转换过程中要注意SQL语句的长度限制,因为Oracle的varchar2类型最大只能存储4000个字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意的地方:拼接的sql可能超出了要截取的长度,字符串varchar2最多存储4000

select to_char(substr(table_prefix || col_strs || table_subfix, 1, 4000)) con
  from (select n.table_prefix,
               wm_concat(m.col_str) as col_strs,
               n.table_subfix
          from (select a.table_name,
                       'drop table if exists ' || lower(a.table_name) ||
                       ';create table ' || lower(a.table_name) || '(' as table_prefix,
                       ') comment ''' || b.comments ||
                       ''' ROW FORMAT DELIMITED FIELDS TERMINATED BY ''\t'' ESCAPED BY ''\\'' STORED AS TEXTFILE;' as table_subfix
                  from user_tables a, user_tab_comments b
                 where a.table_name = b.table_name
                --and a.table_name = 'MID'
                 order by a.table_name) n,
               (select c.TABLE_NAME,
                       c.column_name || ' ' ||
                       decode(c.data_type,
                              'VARCHAR2',
                              'varchar' || '(' || c.DATA_LENGTH || ')',
                              'NUMBER',
                              'int',
                              'DATE',
                              'timestamp',
                              'CHAR',
                              'CHAR' || '(' || c.DATA_LENGTH || ')',
                              'CLOB',
                              '
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值