Executar um script do banco em java

10 respostas
E

Tem como em apenas um execute eu realizar várias operações como em um script, por exemplo:

String sql = "CREATE TABLE TESTE (OID_TESTE NUMERIC NOT NULL);" + " CREATE TABLE TESTE2 (OID_TESTE2 NUMERIC NOT NULL) ;";
Ser executado em um único comando em java… ???

10 Respostas

R

O que vc acha de criar um projetinho de teste pra verificar isso?

E
Rodrigo Vieira Pinto:
O que vc acha de criar um projetinho de teste pra verificar isso?
Com certeza eu já tentei...
String sql = "CREATE TABLE TESTE (OID_TESTE NUMERIC  NOT NULL);" +
				"  CREATE TABLE TESTE2 (OID_TESTE2 NUMERIC  NOT NULL) ;";		
		try {
			Connection connection = null;

			DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
			connection = DriverManager.getConnection(URL, user, password);
			connection.createStatement().execute(sql);
			
			connection.commit();

Só que ele indica Caracter Inválido......
Então gostaria de saber se tem como fazer para executar tudo? qual caracter que devo usar como separador.....??

R

Acho que nao amigo…
caso vc necessite fazer isso … crie um SP (Stored Procedure) no BD.
:wink:

E

rdgms:
Acho que nao amigo…
caso vc necessite fazer isso … crie um SP (Stored Procedure) no BD.
:wink:

Eu não posso criar procedure e nem posso usar split…para verificar os ; …
Acho que não tem como , se alguém souber me avisa…

F

Ja tentou com PreparedStatement?

Eu me lembro que com preparesStatement eu ja consegui declarar uma função PL-SQL, escrever o corpo da função e executar sem problemas.

R

Pelo seu teste, o problema não é com o Java, é com o banco mesmo, que não aceita 2 comandos dessa forma.

Tente executar os 2 comandos diretamente na base, usando o client do banco. Se não funcionar, o problema é no banco mesmo.

E, se funcionar, tente o preparedStatement como o fabiocsi falou.

EDITADO: Melhor dizendo: não que o banco tenha problemas, mas sim a sintaxe que você tá usando pode estar incorreta.

F
stmt.addBatch(sql);
...
stmt.executeBatch();

Não é uma opção?

F

Olá

E com prepared statement já tentou?

E

Veja um exemplo de comando que eu quero executar…

prompt 
prompt Criando package PKGL_Util...
@@PKGL_Util.pks;
@@PKGL_Util.pkb;

Sendo que nestes arquivos existem create tables, functions, procedures…

E

edineimanica:
Veja um exemplo de comando que eu quero executar…

prompt 
prompt Criando package PKGL_Util...
@@PKGL_Util.pks;
@@PKGL_Util.pkb;

Sendo que nestes arquivos existem create tables, functions, procedures…

Ninguém, já sei que com um Runtime.execute, derepente funcione …
Existe outra forma ??

Criado 7 de março de 2008
Ultima resposta 10 de mar. de 2008
Respostas 10
Participantes 6