I'm trying to create a preparedStatement with a create or replace sql
request. Is this possible?
Here's my code that fails with the message below:
private void processStmt( Element pElem ) {
try{
String xSql = new String("create or replace view V_TEST as
( "+
" select vcf_attribute_set_v.name from "+
" vcf_attribute_set_v "+
" where "+
" vcf_attribute_set_v.language_id = ? "+
")" );
DriverManager.registerDriver(new
oracle.jdbc.driver.OracleDriver());
Connection conn =
DriverManager.getConnection("jdbc:oracle:oci8:@" + "dora3" ,
"vcfexpv31", "demoexp");
PreparedStatement wStmt1 = conn.prepareStatement( xSql );
wStmt1.setInt(1,3);
wStmt1.executeQuery();
}catch( Exception e ){
e.printStackTrace();
}
}
java.sql.SQLException: ORA-01036: illegal variable name/number
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.oci8.OCIDBAccess.check_error(OCIDBAccess.java:1597)
at oracle.jdbc.oci8.OCIDBAccess.executeFetch(OCIDBAccess.java:1155)
at oracle.jdbc.oci8.OCIDBAccess.parseExecuteFetch(OCIDBAccess.java:1321)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1446)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1371)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1900)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:363)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:407)
at com.mediagrif.vcf.exporter.impl.engine.EcxPreProcessor.processStmt(EcxPreProcessor.java:194)
at com.mediagrif.vcf.exporter.impl.engine.EcxPreProcessor.execute(EcxPreProcessor.java:103)
at com.mediagrif.vcf.exporter.impl.engine.EcxPreProcessor.main(EcxPreProcessor.java:34)
You can't use ? parameters in DDL statements (like create or replace) and therefore in
views. PreparedStatement has little use for DDL.
--
Lee Fesperman, FFE Software, Inc. (http://www.firstsql.com)
===================================================================
* Check out Database Debunkings (http://www.firstsql.com/dbdebunk/)
* "Where Persistent Prevailing Database Fallacies Are Dispelled"