Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Inserindo uma string com aspas duplas em uma tabela


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 .