我尝试使用以下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`
我该如何解决这个问题?
答案 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