oracle - Sqoop 错误:导入需要 --table 或 --query
问题描述
使用以下 sqoop 命令(oracle 查询)时出现命令未找到错误。
我使用另一个 sqoop 命令连接到另一个具有不同 jdbc 连接字符串的数据库,它连接并获取数据而没有错误。不知道问题出在哪里,有人可以帮助解决此错误吗?提前致谢。
`sqoop import
--connectjdc:oracle:thin:@//(connection string)
--query
"Select sys,
case when (substring(gid,3,3))="_A_" or gid="NJ_Parsipanny") then "core"
when
else "misc" end "org",
aid, aname,
b.workid as "waddress",
f.ai,
a.ag,
b.jobd,
b.jobk,
e.emstatus,
b.jobfunc,
b.superid,
c.fname+" "+c.lname as "S_Name",
FROM ad.db.tbl_a a
left join common.db.b b
on a.tid=b.sbid
left join common.db.c c
on b.sid=c.sbid
left join common.db.d d
on c.sid=d.sbid
left join common.db.e e
on d.sid=e.sbid
left join ad.db.tbl_f f
on a.AG=f.AG
WHERE RIGHT(a.AG,1) IN ("E","T")
AND \$CONDITIONS"
--num-mappers 1
--target-dir /abc/46780
--fields-terminated-by ","
--user-name xyz
--password-file hdfs:///abc/46780/p/pswd.txt`
错误:找不到命令。导入第 26 行需要 --table 或 --query:--query:未找到命令第 44 行:--num-mappers:未找到命令第 45 行:--target-dir:未找到命令第 46 行:-- fields-terminated-by:找不到命令第 47 行:--用户名:找不到命令第 48 行:--password-file:找不到命令
解决方案
我假设您正在从linux shell command line
.
我将重写 sqoop 命令如下。
首先,我将通过 Oracle 控制台测试查询以查看查询是否正常工作。
其次,在每行的末尾,你应该把斜杠\
第三,您应该将字符串文字放在单引号'string literal'
而不是双引号之间的查询中。
sqoop import \
--connectjdc:oracle:thin:@//(connection string) \
--query "Select sys,
case when (substring(gid,3,3))='_A_' or gid='NJ_Parsipanny') then 'core'
when
else 'misc' end 'org',
aid, aname,
b.workid as waddress,
f.ai,
a.ag,
b.jobd,
b.jobk,
e.emstatus,
b.jobfunc,
b.superid,
c.fname+' '+c.lname as S_Name,
FROM ad.db.tbl_a a
left join common.db.b b
on a.tid=b.sbid
left join common.db.c c
on b.sid=c.sbid
left join common.db.d d
on c.sid=d.sbid
left join common.db.e e
on d.sid=e.sbid
left join ad.db.tbl_f f
on a.AG=f.AG
WHERE RIGHT(a.AG,1) IN ('E','T')
AND \$CONDITIONS" \
--num-mappers 1 \
--target-dir /abc/46780 \
--fields-terminated-by "," \
--username xyz \
--password-file hdfs:///abc/46780/p/pswd.txt
推荐阅读
- vue.js - Vue 3 - 数字 0 增加 (++) 在模板中不是 1 而是 101,为什么?
- python-3.x - 班级列表 - 我将如何重复输入的学生数量?
- winapi - WaitOnAddress / WakeByAddressAll / WakeByAddresSingle 如何工作
- reactjs - 如何在渲染执行后使用计时器更新 UI
- python - 使用需要登录的 Beautiful Soup 抓取网站
- c - ARM NEON 数组类型有什么好处(除了方便)吗?
- ssh - 在 ipv6 上获取 `ssh client_loop: send disconnect: Broken pipe`
- android - 为什么在使用 kotlinx.android.parcel.Parcelize 时会收到“未实现抽象成员”警告?
- php - ImageMagick 支持的格式数量:0
- python - 如何在字符串中随机大写字符?