Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wstawianie ciągu znaków z podwójnymi cudzysłowami do tabeli

Podwójny cudzysłów oznacza identyfikator cytowany , czyli nazwa obiektu, która nie składa się wyłącznie ze znaków alfanumerycznych, $ i # . Na marginesie zalecamy, aby nie użyj cytowanych identyfikatorów. To jest powód twojego oryginalnego błędu ORA-00984. Oracle zakłada, że ​​"tes" jest kolumną, a nie ciągiem i nie można użyć nazwy kolumny w klauzuli VALUES instrukcji INSERT, jak wyjaśniono w komunikacie o błędzie .

Aby wstawić ciąg "tes" do tabeli, upewnij się, że jest on zacytowany poprawnie :

Dowolny znak może być częścią łańcucha, więc aby wstawić podwójny cudzysłów do tabeli, musisz umieścić go w pojedynczych cudzysłowach.

insert into users (id, name, username) 
values (null, '"tes"', '"hello"');

Oto SQL Fiddle do zademonstrowania.

Jedna dodatkowa rzecz do odnotowania. Oświadczasz, że to zapytanie jest generowane automatycznie, co oznacza, że ​​możesz być podatne na wstrzyknięcie SQL. Gorąco polecam przeczytanie o zmiennych wiążących w Ochrona przed Wstrzyknięcie SQL .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. java.lang.ClassCastException:nie można rzutować oracle.sql.BLOB na oracle.sql.BLOB

  2. Oracle:Tabela partycji według miesiąca

  3. istnieje zachowanie sprzężenia wewnętrznego wewnątrz sql

  4. Jakie jest zastosowanie zmiennej TNS_ADMIN w Oracle?

  5. Brak pliku skryptu SQL (apex_epg_config.sql) w Oracle Apex 20.2