39 votos

ORA-00911: carácter no válido

Puedo crear dos tablas en mi oracle (11g) de la base de datos como este:

    create table "test" ("id" int);
    create table test ("id" int);

Luego, en mi programa de C# hay un problema :

    OracleConnection conn = new OracleConnection(-myConnectionString-);
    conn.Open();
    OracleCommand command = new OracleCommand("select * from test;", conn);
    var v = command.ExecuteReader(); 
    OracleCommand command = new OracleCommand("select * from \"test\";", conn);
    var v = command.ExecuteReader(); 

para ambos comandos.ExecuteReader() tengo una "ORA-00911: carácter no válido error".

106voto

Antonio Bakula Puntos 12301

Quitar el ; (punto y coma) al final de la cadena SQL

20voto

John Galambos Puntos 563

En el caso de que otras personas viento hasta aquí buscando la manera de incluir varias instrucciones en un solo comando, deberá ajustar sus declaraciones dentro de begin y end. Esto evitará los errores de caracteres no válidos debido a los puntos y comas. Por ejemplo:

var command = new OracleCommand(@"
    begin
    select * from test;
    select * from test2;
    end;")

1voto

LolCoder Puntos 6386

¿Por qué estás usando el punto y coma en la consulta...solo ser tomado como un carácter no válido..... Usted tiene que quitar el punto y coma(;) de la consulta y hacer como esta:

   OracleConnection conn = new OracleConnection(-myConnectionString-);
   conn.Open();
    OracleCommand command = new OracleCommand("select * from test", conn);
    var v = command.ExecuteReader(); 
    OracleCommand command = new OracleCommand("select * from \"test\"", conn);
    var v = command.ExecuteReader(); 

Para más detalle de este error, se puede leer aquí.

0voto

Gabriel Puntos 1565

Esto no es de este tipo de problema, pero esperemos que esto ayude a alguien por ahí:

A menudo tengo este problema con las comillas simples oculto en el interior de comentarios en línea, así:

select foo 
from bar
where 
/* some helpful comment with a "can't" or somesuch */
baz='qux'

La inigualable oferta única en el comentario de la causa todo tipo de drama, y oracle no sale de su camino para ayudarle a averiguar eso.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: