/** * Execute an SQL update * * @param SQL * the SQL statement * @return true if the next result is a ResultSet object; false if it is an update count or there are no more * results */ public static boolean execute(String SQL) { return execute(DEFAULT, SQL); }
public static void executeSQL(String sqlScript) { for (CharSequence sql : new SQLSplitter(sqlScript)) { String s = sql.toString().trim(); if (s.length() > 0) { DB.execute(s); } } }
private static void disableForeignKeyConstraints() { if (DBPlugin.url.startsWith("jdbc:oracle:")) { DB.execute("begin\n" + "for i in (select constraint_name, table_name from user_constraints where constraint_type ='R'\n" + "and status = 'ENABLED') LOOP\n" + "execute immediate 'alter table '||i.table_name||' disable constraint '||i.constraint_name||'';\n" + "end loop;\n" DB.execute("SET REFERENTIAL_INTEGRITY FALSE"); return; DB.execute("SET REFERENTIAL_INTEGRITY FALSE"); return; DB.execute("SET foreign_key_checks = 0;"); return; DB.execute("SET CONSTRAINTS ALL DEFERRED"); return;
private static void enableForeignKeyConstraints() { if (DBPlugin.url.startsWith("jdbc:oracle:")) { DB.execute("begin\n" + "for i in (select constraint_name, table_name from user_constraints where constraint_type ='R'\n" + "and status = 'DISABLED') LOOP\n" + "execute immediate 'alter table '||i.table_name||' enable constraint '||i.constraint_name||'';\n" + "end loop;\n" DB.execute("SET REFERENTIAL_INTEGRITY TRUE"); return; DB.execute("SET REFERENTIAL_INTEGRITY TRUE"); return; DB.execute("SET foreign_key_checks = 1;"); return;
/** * Flush the entire JDBC database */ public static void deleteDatabase() { try { idCache.clear(); List<String> names = new ArrayList<>(); ResultSet rs = DB.getConnection().getMetaData().getTables(null, null, null, new String[] { "TABLE" }); while (rs.next()) { String name = rs.getString("TABLE_NAME"); names.add(name); } disableForeignKeyConstraints(); for (String name : names) { if (Arrays.binarySearch(dontDeleteTheseTables, name) < 0) { if (Logger.isTraceEnabled()) { Logger.trace("Dropping content of table %s", name); } DB.execute(getDeleteTableStmt(name) + ";"); } } enableForeignKeyConstraints(); Play.pluginCollection.afterFixtureLoad(); } catch (Exception e) { throw new RuntimeException("Cannot delete all table data : " + e.getMessage(), e); } }