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 .