sql-server - Sqoop Eval 运行多个查询?
问题描述
我们可以使用 Sqoop eval 函数运行多个 sql 查询吗?
例如:
sqoop eval -D mapreduce.job.queuename=NONP.XXXX --connect "jdbc:sqlserver://ee-dev/cloud.net:1433;database=sqlserver1" --username XXXX --password ABC -- query 'drop table if exists table1;'select townid,stateid,countryid from town;'
有人可以建议在一个 sqoop EVAL 中运行多个查询的解决方案吗?
如果在一个 Sqoop EVAL 中无法进行多个查询,那么我必须编写多个 Sqoop Eval 作业。
解决方案
SQL Server 客户端通常可以发送一批多条语句而不是单个查询。您需要将语句连接在一个字符串中,并用空格分隔它们。在多语句批处理中抑制 ROWCOUNT 消息也是一个好习惯。所以像:
--query 'set nocount on; drop table if exists table1; select townid,stateid,countryid from town;'
可以在单个批次中出现的语句有一些限制。某些 DDL 语句必须是批处理中的第一个或唯一一个语句,并且解析批处理所需的所有对象都必须存在于批处理的开头。如有必要,您可以通过在批处理中使用动态 SQL 来解决这两个问题。
推荐阅读
- c++ - “在不同的源文件中分离模块接口/实现单元”和使用“私有模块片段”之间的权衡是什么
- node.js - 在尝试运行“Hello World”练习后,遇到此错误代码 ENOENT: no such file or directory
- c++ - 如何确定 [start,stop) 范围内的元素是否都相等?
- python - SettingWithCopyWarning 问题
- python - Python 硒代理
- c++ - 基于 GTest 的测试二进制文件在构建时失败
- javascript - 带有 indexOf 的 JavaScript 字符串数组或带有字符串作为字段名的对象
- sql - 如何在 oracle 中将日期列默认为比另一个日期列提前 21 天?
- r - RMarkdown + ggplotly 的图形大小
- python - 为什么我的列表会因为 Python 中的 print 语句而发生变化?