【问题标题】:Binding function call using JDBC使用 JDBC 绑定函数调用
【发布时间】:2017-02-14 15:31:37
【问题描述】:

我有一个使用参数绑定的 jdbcpreparedstatement

例如:

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 对象,它在表空间中有自己的位置,而不是指向函数中使用的通用对象?

【问题讨论】:

标签: java oracle jdbc


【解决方案1】:

不,JDBC 不支持这样的东西。您只能使用绑定参数设置值,没有别的。

关于您的第二个问题:没有java.sql.Clob.getEmptyClob(),因此您可能正在谈论Oracle 特定扩展oracle.sql.CLOB.getEmptyCLOB(),其文档仅说:

返回一个空的 lob。使用空 lob 初始化 LOB 列/属性。注意:空的 lob 不能读写

请注意,此方法已弃用。

【讨论】:

    猜你喜欢
    • 2019-01-30
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 2019-07-14
    • 2017-02-21
    • 1970-01-01
    相关资源
    最近更新 更多