【发布时间】:2020-04-21 07:34:14
【问题描述】:
我正在使用带有 Scala 的 Azure Databricks,我的目标是从 Azure SQL 表中删除一些行。
为了实现这一点,我使用 JDBC 的下推查询如下:
val pushdown_query = s"(DELETE FROM ${table_name} WHERE dump_date = '2020-01-07') temp"
val res = spark.read.jdbc(jdbcUrl, pushdown_query, connectionProperties)
但是,我收到以下错误:
com.microsoft.sqlserver.jdbc.SQLServerException: A nested INSERT, UPDATE, DELETE, or MERGE statement must have an OUTPUT clause.
我在下推查询中添加了 OUTPUT 子句来解决这个问题:
val pushdown_query = s"(DELETE FROM ${table_name} OUTPUT DELETED.dump_date WHERE dump_date = '2020-01-07') temp"
但现在我收到以下错误:
com.microsoft.sqlserver.jdbc.SQLServerException: A nested INSERT, UPDATE, DELETE, or MERGE statement is not allowed in a SELECT statement that is not the immediate source of rows for an INSERT statement.
我做错了什么?我怎样才能做到这一点?有没有更好的办法?
提前致谢。
【问题讨论】:
标签: sql scala azure azure-sql-database azure-databricks