把oracel的表结构转化为hive支持的表结构

 说在前面的话;由于公司要把数据放在大数据平台hive数据仓库中进行数据的展示,处理等,目前数据是在oracel中,那么进行数据的迁移首先就是要建立相应的表结构喽 ,那么问题来了  原来在oracel中的数据库中有几百张表,如果手动一张一张的建立话,耗时又耗力,下面介绍三种方式把oracel中的表结构转化我hive可以使用的

方式一:注意的地方:拼接的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',
                            
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值