HI, fulin

能大致贴下代码吗?能复现异常即可。简单说下这两个方法,
 TableEnvironment.executeSql(String statement)是为了用于执行单条的 sql 语句, SQL语句可以是 
DDL/DML/DCL/DQL, DML(如insert)和DQL(如select)的执行是等 Flink 
job提交后返回该方法的执行结果,DDL(create table ...) 和 DCL(use database …) 
的执行是对应的SQL语句执行完成就返回,理解起来就是需要提交 Flink job 的SQL需要等 job 提交后返回结果,其他是立即执行并返回。
Statementset.execute() 主要用于执行批量的 sql 语句,sql 语句只能是 insert xx,可以看接口的方法, 这个接口主要是为了 
SQL 里有多个query的情况, (比如multiple sink:insert tableA from xx ;insert tableB from 
xx), 如果调用 TableEnvironment.executeSql(“insert tableA from xx”), 
TableEnvironment.executeSql(“insert tableA from xx”) 就会起两个 Flink job, 
这应该不是用户需要的。
具体使用根据你的需要来使用。


Best,
Leonard Xu


> 在 2020年7月11日,22:24,sunfulin <[email protected]> 写道:
> 
> statementset.execute

回复