Se utilizan comillas dobles para indicar un identificador entrecomillado , es decir, un nombre de objeto que no consta únicamente de caracteres alfanuméricos, $
y #
. Aparte, se recomienda que no utilizar identificadores entrecomillados. Esta es la razón de su error original ORA-00984. Oracle asume que "tes"
es una columna, no una cadena, y no puede usar un nombre de columna en la cláusula VALUES de una instrucción INSERT, como se explica en el mensaje de error
.
Para insertar la cadena "tes"
en una tabla, debe asegurarse de que esté citado correctamente
:
Cualquier carácter puede ser parte de una cadena, por lo que para insertar una comilla doble en una tabla, debe encerrarlo entre comillas simples.
insert into users (id, name, username)
values (null, '"tes"', '"hello"');
Aquí hay un SQL Fiddle para demostrar.
Una cosa adicional a tener en cuenta. Usted declara que esta consulta se genera automáticamente, lo que significa que puede ser vulnerable a la inyección de SQL. Recomiendo encarecidamente leer acerca de las variables de vinculación en Protección contra Inyección SQL .