sqoop导出oracle数据hive报错:java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在

文章描述了一次在Oracle数据库中遇到的SQL语法错误,原因是使用小写表名时未加引号导致的表或视图不存在。解决方法是确保在查询中使用双引号包含表名,无论是`--query`还是`--table`方式。
摘要由CSDN通过智能技术生成

具体报错如下:

2023-11-29 13:54:06,998 INFO manager.SqlManager: Executing SQL statement: select * from crjz where  (1 = 0) 
2023-11-29 13:54:07,053 ERROR manager.SqlManager: Error executing statement: java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在

java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在

        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494)
        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446)
        at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1054)
        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:623)
        at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252)
        at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:612)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:226)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:59)

原因: 

因为在oracle表名都是区分大小写的,默认为大写。恰巧我这边在Oracle中有小写的表名,所以才会出现找不到表的错误

解决方法:在表名上面增加双引号单引号双引号

 --query "select * from "'"crjzpxx_copy"'" where \$CONDITIONS"

说明:我这里是用的--query的方式,如果是--table也可尝试以上方法,具体我没试过,我想应该是可以的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值