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

原sqoop脚本:

bash 复制代码
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

相关推荐
卷毛迷你猪3 天前
快速实验篇(A11)数据集成与多维分析:从单实验产出到跨实验宽表
hive·hadoop
lbb 小魔仙3 天前
OpenClaw + cpolar 实战:远程 NAS、分享小游戏、RDP,再配置公网 AI 入口
数据库·人工智能·redis·oracle·prometheus
小刘在重生~3 天前
Oracle_day2 单行函数|组函数|分组|伪列|子查询|分页|多表连接
笔记·oracle·面试
NineData4 天前
NineData 与统信服务器操作系统完成兼容认证
数据库·oracle·操作系统·软件·数据库管理工具·ninedata·统信
山岚的运维笔记4 天前
mysql 专业笔记 -- 第 36 章:MySQL 管理
运维·数据库·笔记·后端·mysql·oracle·dba
geovindu4 天前
sql: Transaction & Concurrency Patterns using Oracel 21c
oracle·数据库开发·数据库架构
jnrjian4 天前
DRG-50857 ORA-30576 drixmd.PurgeKGL CTXSYS
数据库·oracle
jnrjian4 天前
Domain index 解决中英文 联合查询
oracle
Francek Chen4 天前
【大数据处理与分析】数据仓库Hive:04 数据仓库Hive概述
大数据·数据仓库·hive·hadoop·分布式
jnrjian4 天前
Domain sync job SCHEDULER 空白job
oracle