我有一个使用参数绑定的jdbc preparedstatement
例如:
insert into CLOB_COLUMN values (?)
我想使用empty_clob()并将其绑定到参数,然后我可以执行类似
的操作if(foo){
statement.setClob("something");
else{
statement.setfunction("empty_clob()")
}
JDBC是否支持此功能?我觉得这是一个常见的用例,我错过了一些东西。我没有看到将函数绑定到预准备语句中的参数的方法,并且在文档中找不到任何内容,在尝试作为字符串时,它只是添加字符串" empty_clob()"到行中的列。
作为旁注(针对特定用例而非问题,我知道statement.setClob(Clob.getEmptyClob()
)存在,这是否实际激活了oracle中的工作表下的empty_clob()
?或者它是否创建了一个空的clob对象,它在表空间中拥有它自己的位置,而不是指向函数中使用的泛型?
答案 0 :(得分:2)
不,JDBC不支持这样的东西。您只能使用绑定参数设置值,没有别的。
至于你的第二个问题:没有java.sql.Clob.getEmptyClob()
,所以你可能正在讨论Oracle特定扩展oracle.sql.CLOB.getEmptyCLOB()
,而其文档只说:
返回一个空吊球。使用空lob来初始化LOB列/属性。注意:无法读取或写入空吊球
请注意,此方法已弃用。