如何解决java中的写数据定义操作?

时间:2014-01-06 20:05:04

标签: java sql

我正在尝试执行以下查询:

    String sql="create or replace view toprecords as select * from(select directory_name,file_name,sum(value) from tfidfvalues where directory_name =? group by(directory_name,file_name) order by(sum(value)) desc) where rownum<=10";
                        stmt = con.prepareStatement(sql);
                        stmt.setString(1, directory_names.get(x));

                        stmt.executeUpdate();

当我在oracle中执行它时它工作正常但是当我尝试在java中实现它时它显示以下错误:

    java.sql.SQLException: ORA-01027: bind variables not allowed for data definition operations

那怎么克服这个例外?

1 个答案:

答案 0 :(得分:0)

消息说明了一切,你不能在DDL操作中使用绑定变量。

您需要做的是创建没有where子句的视图,而是在查询视图时应用过滤。