Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да се справя с кавички в SQL

Символът за екраниране е ', така че ще трябва да замените кавичката с две кавички.

Например,

SELECT * FROM PEOPLE WHERE SURNAME='O'Keefe'

става

SELECT * FROM PEOPLE WHERE SURNAME='O''Keefe'

Въпреки това вероятно е неправилно да правите това сами. Вашият език може да има функция за екраниране на низове за използване в SQL, но още по-добра опция е да използвате параметри. Обикновено това работи по следния начин.

Вашата SQL команда ще бъде:

SELECT * FROM PEOPLE WHERE SURNAME=?

След това, когато го изпълните, предавате "O'Keefe" като параметър.

Тъй като SQL се анализира преди да бъде зададена стойността на параметъра, няма начин стойността на параметъра да промени структурата на SQL (и дори е малко по-бързо, ако искате да изпълните един и същ израз няколко пъти с различни параметри).

Трябва също да отбележа, че докато вашият пример просто причинява грешка, вие се отваряте към много други проблеми, като не избягвате правилно низовете. Вижте http://en.wikipedia.org/wiki/SQL_injection за добра отправна точка или следния класически xkcd комикс .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Обработка на грешки в Oracle

  2. Присъединяване на вложен цикъл в Oracle 11g

  3. oracle ExecuteNonQuery замръзва на ASP.Net

  4. SQL множествена SELECT заявка с функция xmlagg- Данните не са изтеглени по необходимия начин

  5. ORACLE SQL получава разлика от две стойности, извлечени от 2 оператора за избор