为什么这个Sqoop命令列出Oracle数据库中的表不起作用?

时间:2013-11-12 23:36:10

标签: hadoop sqoop

我尝试使用以下Sqoop命令列出Oracle数据库中的表:

sqoop list-tables --connect jdbc:oracle:thin:@//10.13.25.118:1521/udc.ds.dtvops.net --username xxxx --password xxxx

但是我收到了这个错误:

13/11/12 16:34:58 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
13/11/12 16:34:58 INFO manager.SqlManager: Using default fetchSize of 1000
13/11/12 16:34:59 INFO manager.OracleManager: Time zone has been set to GMT`

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

Sqoop是工具的工具,列表是其中之一。

使用list-tables的语法:

sqoop list-tables --connect <> --username <> --password <>

在你的情况下,试试

sqoop list-tables --connect jdbc:oracle:thin@10.13.25.118:1521/db_name --username xxxx --password xxxx

将您的数据库名称写为db_name

答案 1 :(得分:0)

Oracle内置连接器中的列表表工具仅限于用于连接本身的用户所拥有的表。查看Sqoop将执行的query

list-tables工具更像是一个探索选项而不是生产用工具,因此我建议您只需导入所需的表。考虑到您使用不同的用户名登录Oracle然后是表的所有者,您需要在--table参数的命令行中指定所有者:

sqoop import ... - 表OWNER.TABLE

答案 2 :(得分:0)

如果它们没有运行,您可能必须先启动oracle和http服务。

启动Apache http和oracle服务(例如:Oracle Database 11g Express Edition)

sudo service httpd start
sudo service oracle-xe start

然后,您可以运行sqoop命令

sqoop list-tables --connect jdbc:oracle:thin@10.13.25.118:1521/db_name --username xxxx --password xxx