spark:未能将包含空值的布尔列发送到oracle

o2g1uqev  于 2021-07-09  发布在  Spark
关注(0)|答案(0)|浏览(222)

我有一个包含布尔列(true、false、null)的Dataframe。当我使用spark2 scala jdbc将这个dataframe发送到oracle19c中的现有表时,它失败了,错误为:java.sql.sqlexception:invalid column type:16。
但是,当它们在Dataframe中不是空值时,任务就成功地完成了。另外,如果我在oracle中直接在boolean字段中插入一个null值,就没有问题了(这只是为了在oracle中直接测试null值)。
我使用spark在oracle中编写数据的方法是: df.write.mode(SaveMode.Append).jdbc(url, tableName, connectionProperties) 我可以在oracle中编写的Dataframe: val df = Seq(("d1",TRUE), ("d2",FALSE)).toDF("firstColumn","secondColumn") 无法在oracle中编写的Dataframe: val df = Seq(("d1",TRUE), ("d2",FALSE),("d3",null)).toDF("fistColumn","secondColumn") 以下是有关oracle中目标列的一些信息:
数据类型:数字(1,0)
可空:是
数据默认值:(空)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题