2010-04-23 18 views
7

Bunun tekrar Oracle 10 veritabanı yapmaya çalışıyorum:cx_Oracle ve çıkış değişkenleri

cursor = connection.cursor() 
lOutput = cursor.var(cx_Oracle.STRING) 
cursor.execute(""" 
      BEGIN 
       %(out)s := 'N'; 
      END;""", 
      {'out' : lOutput}) 
print lOutput.value 

ama

DatabaseError: ORA-01036: illegal variable name/number 

alıyorum o cx_Oracle içinde PL/SQL bloklarını tanımlamak mümkün mü bu yoldan?

cevap

7

Evet, anonim PL/SQL blokları yapabilirsiniz. Çıkış parametresi için bağlama değişkeniniz doğru biçimde değil. Ben denedik düşündüm o noktada özellikle kombinasyon, ama biz onu kaçırmış olmalı

<cx_Oracle.STRING with value 'N'> 
+0

çok teşekkür ederiz ...: Bu :out yerine çıktı üretir %(out)s

cursor = connection.cursor() lOutput = cursor.var(cx_Oracle.STRING) cursor.execute(""" BEGIN :out := 'N'; END;""", {'out' : lOutput}) print lOutput 

olmalı! – Tim

+0

cursor.callproc ("SOME_PROC", [lOutput]) kullanırsam nasıl değiştirebilirim –

İlgili konular