sql >> Database teknologi >  >> RDS >> Oracle

Indsættelse af en streng med dobbelte anførselstegn i en tabel

Et dobbelt anførselstegn bruges til at angive et citeret id , dvs. et objektnavn, der ikke udelukkende består af alfanumeriske tegn, $ og # . Som en sidebemærkning anbefales det, at du ikke gør det bruge citerede identifikatorer. Dette er årsagen til din oprindelige ORA-00984 fejl. Oracle antager, at "tes" er en kolonne, ikke en streng, og du kan ikke bruge et kolonnenavn i VALUES-sætningen i en INSERT-sætning, som forklaret i fejlmeddelelsen .

For at indsætte strengen "tes" ind i en tabel, du skal sikre dig, at den er citeret korrekt :

Ethvert tegn kan være en del af en streng, så for at indsætte et dobbelt anførselstegn i en tabel skal du omslutte det inden for enkelte anførselstegn.

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

Her er en SQL Fiddle at demonstrere.

En yderligere ting at bemærke. Du angiver, at denne forespørgsel genereres automatisk, hvilket betyder, at du være sårbar over for SQL-injektion. Jeg vil varmt anbefale at læse om bindevariabler i Guarding Against SQL-injektion .



  1. Hvordan får du PyPy, Django og PostgreSQL til at arbejde sammen?

  2. Opret en SSH-tunnel til MySQL-fjernadgang

  3. Hvordan aktiverer jeg php til at arbejde med postgresql?

  4. Sådan fjerner du dublerede kolonner fra join i SQL