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

sqoop Oracle to hive出现 Error Msg = ORA-00933: SQL 命令未正确结束

原sqoop脚本:

sqoop import \
--connect "jdbc:oracle:thin:@//10.82.88.223:61521/LZY2" \
--username LZSHARE \
--password 'LZ^share$5105' \
--driver oracle.jdbc.driver.OracleDriver \
--query "SELECT 
    TO_NUMBER(TO_CHAR(GCRQ, 'YYYY')) AS gcrq_year,
    TO_NUMBER(TO_CHAR(GCRQ, 'MM')) AS gcrq_month,
    TO_NUMBER(TO_CHAR(GCRQ, 'DD')) AS gcrq_day,
    YEAR,
    GCRQ,
    GCZBS,
    HOUR,
    MINUTE,
    CDH,
    XSFX,
    SBSBM,
    DCSJLX,
    SJXH,
    CLZQ,
    XKC,
    DKC,
    XHC,
    ZHC,
    DHC,
    TDH,
    JZX,
    MTC,
    TLJ,
    XKCS,
    DKCS,
    XHCS,
    ZHCS,
    DHCS,
    TDHS,
    JZXS,
    MTCS,
    TLJS,
    GCBFB,
    PJCTJJ,
    SJZYL,
    FLAGS,
    OFF_MINS,
    ERR_CODE,
    ERR_DESC,
    DELETE_BY,
    DELETE_TIME,
    CREATE_BY,
    CREATE_TIME,
    UPDATE_BY,
    UPDATE_TIME,
    INSERT_TIME
FROM LZJHGX.DAT_DCSJ_TIME 
WHERE TO_CHAR(GCRQ , 'YYYY-MM-DD') = TO_CHAR(SYSDATE, 'YYYY-MM-DD') AND \$CONDITIONS" \
--split-by "YEAR" \
--hive-import \
--hive-table ods_pre_dat_dcsj_time \
--hive-partition-key "gcrq_year,gcrq_month,gcrq_day" \
--target-dir /user/hive/warehouse/ods_pre_dat_dcsj_time \
--hive-partition-value "gcrq_year=${gcrq_year},gcrq_month=${gcrq_month},gcrq_day=${gcrq_day}" \
-- --hive-drop-import-delims

 出现

关键在于sqoop在计算split-by切片字段时:OriginalSql = SELECT MIN(YEAR), MAX(YEAR) FROM (SELECT
    TO_NUMBER(TO_CHAR(GCRQ, 'YYYY')) AS gcrq_year,
    TO_NUMBER(TO_CHAR(GCRQ, 'MM')) AS gcrq_month,
    TO_NUMBER(TO_CHAR(GCRQ, 'DD')) AS gcrq_day,
    .......
FROM LZJHGX.DAT_DCSJ_TIME
WHERE TO_CHAR(GCRQ , 'YYYY-MM-DD') = TO_CHAR(SYSDATE, 'YYYY-MM-DD') AND  (1 = 1) ) AS t1,

使用 AS t1的语法,Oracle是不支持select * from (select * from A) as t1,这种子查询AS 命名表名的写法。

那么sqoop脚本中如何避免呢?

解决办法:删除掉driver参数--driver oracle.jdbc.driver.OracleDriver


http://www.kler.cn/a/374752.html

相关文章:

  • js动态修改样式(:root)
  • Axios 请求超时设置无效的问题及解决方案
  • 【Linux第七课--基础IO】内存级文件、重定向、缓冲区、文件系统、动态库静态库
  • OpenCV视觉分析之目标跟踪(2)卡尔曼滤波器KalmanFilter的使用
  • K8s企业应用之容器化迁移
  • ABAP开发学习——内存管理二
  • 3周岁孤独症儿童:治愈的希望还是幻想?
  • 一文读懂 HTTP Cookies
  • Python批量查找包含多个关键词的PDF文件
  • CSP/信奥赛C++刷题训练:经典差分例题(2):洛谷P9904 :Mieszanie kolorów
  • TS:如何推导函数类型
  • 探索Unity:从游戏引擎到元宇宙体验,聚焦内容创作
  • 双十一大促有哪些值得入手的产品?这五款产品实用又划算!
  • Three.js 粒子系统教程构建炫酷的 3D 粒子效果
  • 蘑菇书(EasyRL)学习笔记(2)
  • 如何在算家云搭建GFP-GAN(图像生成)
  • h510主板怎么装win7_h510装win7完美解决方案
  • VB.NET中如何利用WCF(Windows Communication Foundation)进行服务间通信
  • 抗扭截面模量公式
  • OSError: Can‘t load tokenizer for ‘bert-base-uncased‘.
  • vscode开发项目常用插件
  • AIGC:开启人工智能生成内容的新时代
  • Kafka集群数据迁移方案
  • 20241028软考架构-------软考案例7答案
  • Kubernetes——part10-1 kubernetes日志收集方案 ELK
  • Kubernetes——part10-2 kubernetes 日志收集方案 EFK