[RESOLVIDO] Índice de coluna inválido

Olá!

Estou tentando efetuar uma inserção no Oracle XE 11, porém via código não estou conseguindo.

Quando eu copio exatamente o que passo e coloco via terminal, consigo inserir na tabela, entretanto ao executar meu código ele retorna o erro “Índice de coluna inválido”.

O código de inserção é este:

	public void registerUser(Usuario usuario) throws Exception {
	super.open();
	stmt = con.prepareStatement("INSERT INTO USUARIO VALUES (null, '?', '?', '?');");
	
	stmt.setString(1, usuario.getNome());
	stmt.setString(2, usuario.getEmail());
	stmt.setString(3, usuario.getSenha());
	
	stmt.execute();
	stmt.close();
	super.close();
}

e criei da seguinte forma a tabela:

CREATE TABLE usuario (ID NUMBER(10) NOT NULL, NOME VARCHAR2 (50) NOT NULL, EMAIL VARCHAR2 (50) UNIQUE NOT NULL, SENHA VARCHAR2 (12) NOT NULL);
ALTER TABLE usuario ADD (CONSTRAINT usuario_pk PRIMARY KEY(ID));
CREATE SEQUENCE usuario_seq START WITH 1;

CREATE OR REPLACE TRIGGER usuario_bir
BEFORE INSERT ON usuario
FOR EACH ROW

BEGIN
SELECT usuario_seq.NEXTVAL
INTO :new.id
FROM dual;
END;
/

Cerca de meia hora da minha vida perdida para descobrir que não é necessário colocar aspas simples, nem ponto e vírgula ao final do prepareStatement. Bom, acredito que pelo menos não me esquecerei mais aihauhuaa.

stmt = con.prepareStatement("INSERT INTO USUARIO VALUES (null, ?, ?, ?)");
1 curtida