sql如何解决java中的写数据定义操作?
我正在尝试执行以下查询:
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 楼答案
消息说明了一切,您不能在DDL操作中使用绑定变量
您需要做的是在不使用
where
子句的情况下创建视图,并在查询视图时应用筛选