Jump to content
Fórum Script Brasil
  • 0

JAVA Erro: ORA-00911: caractere inválido e Erro: null.


Lorenus
 Share

Question

Boa noite rs, estou com um grande problema pois não consigo achar uma solucao para esse erro. não passa os dados pra pesquisa no banco . não sei se e o erro esta no método de acesso,Ligação do banco e Passagem de parametro.

o codigo :

elasDAO; import java.sql.; import telas.TelaInicialChamadosTeste; import telasBEAN.; import telasUTIL.ConnectionFactory;

public class LoginDAO {

private Connection conn; private PreparedStatement ps; private ResultSet rs;

public LoginDAO() throws Exception { try{ this.conn = ConnectionFactory.getConnection(); }catch(Exception e){ throw new Exception("erro: \n" + e.getMessage()); } }

public Login procurarLogin(Login L) throws Exception{ try{ String Sql = "SELECT * FROM usuarios WHERE usuario like '"+L.getUsuario()+"' and senha like '"+L.getSenha()+"';"; conn = this.conn; ps = conn.prepareStatement(Sql); rs = ps.executeQuery(); int teste = rs.getRow(); if (teste == 1 ){ TelaInicialChamadosTeste frame = new TelaInicialChamadosTeste(); frame.setVisible(true); } }catch(Exception e){ //throw new Exception(e); System.out.println("Erro: " + e.getMessage()); }finally{ ConnectionFactory.closeConnection(conn, ps, rs); } return null;

package telasBEAN;

public class Login {

private String usuario; private String senha;

public String getUsuario() { return usuario; }

public void setUsuario(String usuario) { this.usuario = usuario; }

public String getSenha() { return senha; }

public void setSenha(String senha) { this.senha = senha; } }

package telas;

import javax.swing.; import java.awt.event.ActionEvent; import java.awt.; import java.awt.event.ActionListener; import javax.swing.JFrame; import telasBEAN.; import telasDAO.; import telasUTIL.ConnectionFactory;

public class testeLogin extends JFrame { Login d = new Login(); JTextField txtUsuario = new JTextField(); JTextField txtSenha = new JTextField(); JButton Entrar = new JButton("Entrar"); JButton Sair = new JButton();

public testeLogin(){ super("Entrar no sistema"); Container tela=getContentPane(); setVisible(true); setSize(310,330); setLayout(null);

tela.add(txtUsuario); txtUsuario.setBounds(100, 50, 100, 50); tela.add(txtSenha); txtSenha.setBounds(100, 100, 100, 50);

tela.add(Entrar); Entrar.setBounds(100, 150, 100, 50);

Entrar.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){

try { ConnectionFactory.getConnection(); //txtUsuario.setText(String.valueOf(d.getUsuario())); //txtSenha.setText(String.valueOf(d.getSenha())); d.setUsuario(String.valueOf(txtUsuario)); d.setSenha(String.valueOf(txtSenha)); //d.usuario = txtUsuario.getText(); //d.senha = txtSenha.getText(); //d.setUsuario(txtUsuario.getText()); //d.setSenha(txtSenha.getText());

LoginDAO LoginDAO = new LoginDAO(); LoginDAO.procurarLogin(d); } catch (Exception ex) { System.out.println("Erro: " + ex.getMessage()); } } });

} public static void main(String []args){ EventQueue.invokeLater(new Runnable(){ public void run(){ try{ testeLogin frame = new testeLogin(); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }catch(Exception e){ e.printStackTrace(); } } });

} }

agradeço se puderem me ajuda =D

Edited by Lorenus
Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Bom , mudei o Select e ficou assim

String Sql = "SELECT * FROM usuarios WHERE usuario=? and senha=?";

e deu o seguinte erro:

Erro: Parâmetro IN ou OUT ausente do índice:: 1
Erro: null
já não sei mais o que mudar rs
obrigado!
Edited by Lorenus
Link to comment
Share on other sites

  • 0

String Sql = "SELECT * FROM usuarios WHERE usuario=? and senha=?";

======================================================

descrição

Quando você encontrar um erro ORA-00911, a seguinte mensagem de erro aparece:

* ORA-00911: caractere inválido

causa

Você tentou executar uma instrução SQL que inclui um caractere especial.

resolução

A opção (s) para resolver este erro do Oracle são:

Opção 1

Este erro ocorre quando você tenta usar um caractere especial em uma instrução SQL. Se um personagem especial, além do $, _, e # é usado no nome de uma coluna ou tabela, o nome deve ser colocado entre aspas duplas.

Opção # 2

Este erro pode ocorrer se você colou seu SQL em seu editor de outro programa. Às vezes, há caracteres não imprimíveis que podem estar presentes. Neste caso, você deve tentar redigitar sua instrução SQL e, em seguida, ser executado novamente.

Opção # 3

Este erro ocorre quando um caractere especial é usado em uma cláusula WHERE de SQL e o valor não está entre aspas simples.

Por exemplo, se você tivesse a seguinte instrução SQL:

SELECT * de fornecedores
ONDE supplier_name =?;

Você iria receber a seguinte mensagem de erro:

ora00911_001.png

Você pode corrigir este erro colocando o ? em citações individuais do seguinte modo:

SELECT * FROM suppliers
WHERE supplier_name = '?';

//----------------------------------------------------------------------------------------------------------------

veja a sua instrução

String Sql = "SELECT * FROM usuarios WHERE usuario like '"+L.getUsuario()+"' and senha like '"+L.getSenha()+"';";

o erro pode ser aquele penultimo ( ; ) ou podem ser as aspas ( '" )

abraço

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...