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