Aspas duplas são usadas para denotar um identificador entre aspas , ou seja, um nome de objeto que não consiste apenas em caracteres alfanuméricos,
$
e #
. Como um aparte, é recomendado que você não use identificadores entre aspas. Este é o motivo do seu erro ORA-00984 original. A Oracle está assumindo que "tes"
é uma coluna, não uma string, e você não pode usar um nome de coluna na cláusula VALUES de uma instrução INSERT, conforme explicado na mensagem de erro
. Para inserir a string
"tes"
em uma tabela, você precisa garantir que ela seja citada corretamente
:Qualquer caractere pode fazer parte de uma string, portanto, para inserir aspas duplas em uma tabela, você precisa colocá-lo entre aspas simples.
insert into users (id, name, username)
values (null, '"tes"', '"hello"');
Aqui está um SQL Fiddle para demonstrar.
Uma coisa adicional a notar. Você declara que esta consulta é gerada automaticamente, o que significa que você pode ser vulnerável à injeção de SQL. Eu recomendo ler sobre variáveis de ligação em Protegendo contra Injeção de SQL .