Dvojitá uvozovka se používá k označení uvedeného identifikátoru , tj. název objektu, který se neskládá pouze z alfanumerických znaků, $
a #
. Kromě toho se doporučuje, abyste to neudělali používat citované identifikátory. Toto je důvod vaší původní chyby ORA-00984. Oracle předpokládá, že "tes"
je sloupec, nikoli řetězec, a nemůžete použít název sloupce v klauzuli VALUES příkazu INSERT, jak je vysvětleno v chybové zprávě
.
Chcete-li vložit řetězec "tes"
do tabulky, musíte zajistit, aby byla citována správně
:
Jakýkoli znak může být součástí řetězce, takže pro vložení dvojitých uvozovek do tabulky jej musíte uzavřít do jednoduchých uvozovek.
insert into users (id, name, username)
values (null, '"tes"', '"hello"');
Zde je SQL Fiddle demonstrovat.
Ještě jedna věc k poznámce. Uvádíte, že tento dotaz je generován automaticky, což znamená, že můžete být zranitelný vůči SQL injection. Velmi doporučuji přečíst si o proměnných vazby v Guarding Against SQL Injection .