[Python-de] Oracle Datenbankabfrage mit like 'xx%'

Gerhard Häring gh at ghaering.de
Fr Jun 15 21:07:29 UTC 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Günter Lehrich wrote:
> Für eine Oracle-Datenbankabfrage benötige ich einen String mit folgendem
> Inhalt:
>  
> s_artikelnummer="EV%"
> s_where = where artikelnummer like '%s'  % s_artikelnummer
>  
> Der Versuch die s_artikelnummer wie folgt zusammenzusetzen mißlingt:
> eingabe = 'EV'
> s_artikelnummer =eingabe + '%'
> s_where = where artikelnummer like '%s'  % s_artikelnummer
>  
> Kann mir da jemand helfen?

Du wirst dir viel Nerven sparen - und viele unnötige Bugs in deinen
Skripten vermeiden, wenn du die Python DB-API mit der parametrisierten Form
von execute() verwendest, und generell vermeidest, SQL-Statements
"zusammenzustringen".

con = cx_Oracle.connect(...)
cur = con.cursor()
cur.execute("""
  select col1, col2 from artikel
  where artikelnummer like :artikelnummer_pattern
  """, artikelnummer_pattern="EV%")

Leider finde ich kein Tutorial zu cx_Oracle, dass ich dir empfehlen könnte :-(

- -- Gerhard
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGcv+RdIO4ozGCH14RAtHPAJoCMJyGpwGp3kVP6zPGrIq0JRMRUwCdFyK+
4HWChQM2vi9drUwZqJsYZ+E=
=D3cp
-----END PGP SIGNATURE-----