首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java JDBC调用Oracle10函数“无效标识符”

Java JDBC调用Oracle10函数“无效标识符”
EN

Stack Overflow用户
提问于 2012-02-03 04:11:30
回答 1查看 1.2K关注 0票数 2

我遇到了一个以前没有遇到过的问题:数据库中有一个存储函数: CC_PROC,它接受两个日期条目并返回一个表。换句话说,要调用它,只需键入:

SELECT * FROM (TABLE( CC_PROC( DATE '2012-01-01', DATE '2012-01-15')));

这在SQLPlus和NetBeans中似乎工作得很好,而且上面这行显然已经使用了一段时间。

无论如何,当使用准备好的语句从java调用它时,我在executeQuery调用中得到:"CC_PROC":无效标识符。

这是通过:

代码语言:javascript
运行
复制
PreparedStatement preparedStatement = 
     connection.prepareStatement("SELECT * FROM (TABLE ( CC_PROC( ? , ? )))");
preparedStatement.setDate(1,firstDate);
preparedStatement.setDate(2,secondDate);
resultSet = preparedStatement.executeQuery();

我觉得这可能是显而易见的,我有限的经验直接使用JDBC而不是Hibernate会让我大吃一惊。我希望不必在java业务逻辑中对CC_PROC的内容进行重新编码。有什么想法吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-03 04:55:35

啊哈,找到答案了:

oracle用户是SALESOWN,因此修复方法是:

代码语言:javascript
运行
复制
PreparedStatement preparedStatement = connection.prepareStatement(
        "SELECT * FROM (TABLE ( SALESOWN.CC_PROC( ? , ? )))");

啊呀。我不想承认花了多少时间才弄明白这一点。

显然SQLPlus和NetBeans确实想帮点忙。

感谢大家的帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9119262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档