c# system.data.oracleclient

c# - ORA-00911: carácter no válido



system.data.oracleclient (5)

Creo dos tablas en mi base de datos oráculo (11g) de esta manera:

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

Luego en mi programa 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 command.ExecuteReader () Tengo un error "ORA-00911: carácter no válido".


¿Por qué está usando punto y coma en la consulta? Simplemente se toma como carácter no válido ... Debe eliminar el punto y coma (;) de la consulta y hacer esto:

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 obtener más detalles de este error, puede leer here .


En caso de que otras personas terminen aquí buscando cómo incluir varias declaraciones en un solo comando, debe ajustar sus declaraciones dentro de principio y fin . Esto detendrá 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;")


Este no es el problema de este tipo, pero espero que esto ayude a alguien por ahí:

A menudo tengo este problema con comillas simples ocultas dentro de comentarios en línea, como las siguientes:

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

La cita única inigualable en el comentario causa todo tipo de drama, y ​​Oracle no se desvive por ayudarte a descubrirlo.


Reemplazar el parámetro sqldatasource ? con :Column_name en los comandos delete , update e insert .


Retirar ; (punto y coma) desde el final de la cadena SQL