Erro ao tentar executar comando de criação de procedure no banco MySQL

Olá pessoal,

preciso criar uma procedure no banco MySQL via java.
Quando executo o comando (query abaixo) no Query Browser, a procedure é criada normalmente, mas quando tento executar via Java ocorre o seguinte erro:
“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘DELIMITER $$ CREATE DEFINER=root@localhost PROCEDURE NOVABASE.PESSOAINS’ at line 1”

----JAVA----
query = "DELIMITER $$
DROP PROCEDURE IF EXISTS NOVABASE.PESSOAINS $$
CREATE DEFINER=root@localhost PROCEDURE NOVABASE.PESSOAINS (
IN
PID INT, PCODIGO INT, PNOME VARCHAR(20) , PSOBRENOME VARCHAR(30) , PIDADE INT, PIDSEXO INT)
BEGIN INSERT INTO PESSOA(ID, CODIGO, NOME, SOBRENOME, IDADE, IDSEXO)
VALUES (PID, PCODIGO, PNOME, PSOBRENOME, PIDADE, PIDSEXO);
END $$ DELIMITER ; ";

PreparedStatement stmt2 = con.prepareStatement(query);
ResultSet rsST = stmt2.executeQuery();
rsST.close();

Obrigada.

Olá!

Já tentou criar sem os delimitadores no SQL do Java?

Até mais!

Ao retirar o “DELIMITER $$” no início e o “$$ DELIMITER” no final, o seguinte erro foi exibido.

java.sql.SQLException: Can not issue data manipulation statements with executeQuery().

Olá!

Para executar procedures tente usar o CallableStatement

Abraços

Não preciso executar uma procedure, mas sim um comando sql de criação de procedure.

Já tentou executeUpdate ao invés de executeQuery?

Funcionou !

Tive que executar primeiro o que exclui:
DROP PROCEDURE IF EXISTS NOVABASE.PESSOAINS ;

Depois o que cria:
CREATE DEFINER=root@localhost PROCEDURE NOVABASE.PESSOAINS ( IN PID INT, PCODIGO INT, PNOME VARCHAR(20) , PSOBRENOME VARCHAR(30) , PIDADE INT, PIDSEXO INT) BEGIN INSERT INTO PESSOA(ID, CODIGO, NOME, SOBRENOME, IDADE, IDSEXO) VALUES (PID, PCODIGO, PNOME, PSOBRENOME, PIDADE, PIDSEXO); END ;

Todos os dois sem o DELIMITER com executeUpdate().

Obrigada gente.
:smiley: