SqlAlchemy kullanarak bir PG veritabanından veri almak için el hazırlanmış SQL kullanıyorum. SQL gibi operatör '%' içeren ve bir döngü aracılığıyla SqlAlcjhemy atmak gibi bir sorgu çalışıyorum:
sql = """
SELECT DISTINCT u.name from user u
INNER JOIN city c ON u.city_id = c.id
WHERE c.designation=upper('fantasy')
AND c.id IN (select id from ref_geog where short_name LIKE '%opt')
"""
# The last line in the above statement throws the error mentioned in the title.
# However if the last line is change to:
# AND c.id IN (select id from ref_geog where short_name = 'helloopt')
# the script runs correctly.
#
# I also tried double escaping the '%' i.e. using '%%' instead - that generated the same error as previously.
connectDb()
res = executeSql(sql)
print res
closeDbConnection()
Herhangi biri bu yanıltıcı hata iletisine neyin neden olduğunu ve nasıl düzeltebilir bilir?
[[Düzenle]]
Herhangi biri sormadan önce, yukarıdaki işlevler hakkında özel veya süslü bir şey yoktur. Örneğin executeSql () işlevi conn.execute (sql) işlevini çağırır ve sonuçları döndürür. Conn değişkeni, veritabanına önceden kurulmuş bağlantıdır.
executeSql(...)
? Ve ayrıca, eğer gerçekten var mıRETURNING *
içindeSELECT
deyimi?