ďťż
 
Excape'owanie ' w Oracle 9i ďťż
 
Excape'owanie ' w Oracle 9i
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Excape'owanie ' w Oracle 9i



Mateusz - 14-08-2007 00:05
Excape'owanie ' w Oracle 9i
  Hej wszystkim,

korzystam z Oracle'owego BC4J. Mam formularz, gdzie user może podać
nazwę firmy do wyszukania. Ta nazwa firmy może oczywiście zawierać
różne dziwne znaki. O ile z & czy " sobie poradziłem, o tyle nie mam
pomysłu jak zaradzić na ' . Jak wszyscy wiemy ' jest oznaczeniem
napisu w zapytaniu, więc zapytanie:

SELECT * FROM firmy WHERE nazwa LIKE ''danone'' zwraca błąd składniowy
ORA-00907: missing right parenthesis. (UWAGA - słówko danone
otaczają 2x' a nie " - quota).

Na zdrowy rozum próbuję to escape'ować czyli robić ' \'danone\' ' ,
ale to nie pomaga.
Próbowałem też używać ESCAPE, z takim samym skutkiem...

Udało mi się to niby obejść poprzez taką konstrukcję:
input.replaceAll("'", "||char(39)||"); ale to mi zadziała w SQLPlusie,
Toadzie czy innym edytorze, a nie w BC4J, gdzie argument przekazany z
formularza jest otaczany ' i wszystko jest traktowane jako string -
funkcja chr(39) również.

Jakieś pomysły, czcigodni Panowie? :)
Pozdrawiam
-mateusz





Mateusz - 14-08-2007 00:05

  Ok, to sam sobie szybciutko odpowiem. Aby wprowadzić ' należy go
zwielokrotnić (= czyli wprowadzić 2 ;) ).
Reasumując zapytanie:

SELECT * FROM firmy WHERE nazwa LIKE '''danone''' (3x' i 3x' z
prawej)

jest poprawne.

To tyle :)
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?= Oracle 19g +Insert +Insert +Insert... [oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?= [Oracle] jak =?ISO-8859-2?Q?ograniczy=E6_pami=EA=E6_dla_se?==?ISO-8859-2?Q?rwera=3F?= =?ISO-8859-2?Q?=5BOT=5D_Zdany_egzamin_Oracle_1Z0-007_a?==?ISO-8859-2?Q?_brak_informacji_na_stronie_Prometric_-_czy?==?ISO-8859-2?Q?_co=B6_nie_tak=3F?= [oracle] czy da =?ISO-8859-2?Q?si=EA_z_poziomu_procedury_?==?ISO-8859-2?Q?zrobi=E6_kopi=EA_zapasow=B1=3F?= [oracle 10g] czy =?ISO-8859-2?Q?mo=BFna_wy=B3=B1czy=E6_wszys?==?ISO-8859-2?Q?tkie_wi=EAzy_w_schemacie=3F?= MSSQL Express czy Oracle Express =?iso-8859-2?q?[oracle]_Jak_sprawdzi=E6_wielko=B6=E6_tabeli_=3F=3F?= =?ISO-8859-2?Q?Poszukjue_ksi=B1=BFki_"Oracle_?= =?ISO-8859-2?Q?optymalizacja_wydajno=B6ci"..?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • bajkomoda.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com