Qual é a sintaxe correta do SQL para inserir um valor com um apóstrofo?
Insert into Person
(First, Last)
Values
'Joe',
'O'Brien'
Eu continuo recebendo um erro, pois acho que o apóstrofo após o O é a tag final do valor.
sql
sql-update
sql-insert
leora
fonte
fonte
Respostas:
Escape do apóstrofo (ou seja, dobre o caractere de aspas simples) em seu SQL:
O mesmo se aplica às consultas SELECT:
O apóstrofo, ou aspas simples, é um caractere especial no SQL que especifica o início e o fim dos dados da string. Isso significa que, para usá-lo como parte de seus dados literais, você precisa
escape
do caractere especial. Com uma única citação, isso geralmente é realizado duplicando sua citação. (Dois caracteres de aspas simples, não aspas duplas em vez de aspas simples.)Nota : Você só deve se preocupar com esse problema ao editar manualmente os dados por meio de uma interface SQL bruta, pois a gravação de consultas fora do desenvolvimento e teste deve ser uma ocorrência rara. No código, existem técnicas e estruturas (dependendo da sua pilha) que cuidam da fuga de caracteres especiais, injeção SQL , etc.
fonte
Você só precisa dobrar as aspas simples ...
fonte
Você precisa escapar do apóstrofo. No T-SQL, isso ocorre com um duplo apóstrofo, portanto sua
insert
declaração se torna:fonte
Values
deve ficar entre chaves (que, em seguida, faz com que seja a mesma resposta que a de @JustinNiessner)Como uma aspas simples é usada para indicar o início e o fim de uma string; você precisa escapar disso.
A resposta curta é usar duas aspas simples -
''
- para que um banco de dados SQL armazene o valor como'
.Observe o uso de REPLACE para higienizar os valores recebidos:
Você deseja verificar
''''
e substituí-los, se existirem na sequência com''''''
, para escapar da aspas simples.fonte
Eduffy teve uma boa ideia . Ele acabou de retroceder em seu exemplo de código. No JavaScript ou no SQLite, você pode substituir o apóstrofo pelo símbolo de acentuação.
Ele (acidentalmente, tenho certeza) colocou o símbolo de acentuação como o delimitador da corda, em vez de substituir o apóstrofo em O'Brian. Esta é de fato uma solução incrivelmente simples para a maioria dos casos.
fonte
O caractere do apóstrofo pode ser inserido chamando a função CHAR com o valor de pesquisa da tabela ASCII do apóstrofo , 39. Os valores da sequência podem ser concatenados juntamente com um operador concatenado .
fonte
O SQL a seguir ilustra essa funcionalidade.
Resultados
fonte
use aspas duplas em torno dos valores.
fonte
He said, "Don't!"
uso de aspas simples e / ou aspas duplas - o que pode ser feito:'He said, "Don''t!"'
ou"He said, ""Don't!"""
. Ao adicionar uma nova resposta a uma pergunta estabelecida há muito tempo com respostas aceitas, você deve fornecer informações novas e completas. O uso de aspas duplas é novo - mas limitado a alguns DBMS; você deve se esforçar para identificar pelo menos um daqueles que os aceita.Use um bastão (na tecla ~);
fonte