Pessoal boa tarde!
Dei uma olhada na internet e nao encontrei nada coerente do que eu preciso.
Preciso rodar um arquivo .sql com varias coisas dentro, criacao de procedures, inserts, criacao de views, etc e tal.
alguem sabe como faco pra rodar esse arquivo de uma so vez?
obrigado!
veja isto:
public void executeSqlScript(Connection conn, File inputFile) {
// Delimiter
String delimiter = ";";
// Create scanner
Scanner scanner;
try {
scanner = new Scanner(inputFile).useDelimiter(delimiter);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
return;
}
// Loop through the SQL file statements
Statement currentStatement = null;
while(scanner.hasNext()) {
// Get statement
String rawStatement = scanner.next() + delimiter;
try {
// Execute statement
currentStatement = conn.createStatement();
currentStatement.execute(rawStatement);
} catch (SQLException e) {
e.printStackTrace();
} finally {
// Release resources
if (currentStatement != null) {
try {
currentStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
currentStatement = null;
}
}
}
t+ e boa sorte !!!
cara, vlw ajuda. mais os objetos ficam invalidos.
so lembrando que o arquivo esta criptografado e o banco eh oracle.
alguma dica?
objetos ficam invalidos ???
Faz o seguinte, usa o Scanner pra ir exibindo seus SQLs do arquivo em um System.out()…ai vc vai corrigindo conforme precisar.
Mas eu uso dessa maneira ae e num tenho problema…Uso em Oracle/SQLServer/PGSQL e MySQL
t+ e boa sorte.
cara, ta inesplicavel o negocio, roda beleza, dae os objetos ficam invalidos. se mandar compilar os objetos eles continuam invalidos.
se vc ir no sql developer e abrir o objeto e compilar e vai de boa.
alguma coisa que o sql developer faz que o o java nao ta fazendo, algum caractere de escape coisa e talz.
mais dicas?
estou aqui na luta, se descobrir coloco a resposta.
Eu sei que este topico já tem tempo, mais alguma solução ?
Pois tive quase o mesmo problema ele passa pelo currentStatement.execute normalmente com a instrução SQL só que quando vou no banco ele não executou.
entao o meu problema era outro, o arquivo rodava normal, so que os objetos ficavam invalidos no banco.
os objetos estao criptografados tbm? ou vc os roda normal?
[]`s