ich versuche jetzt seit gefühlt 24 Stunden, einen Rückgabewert aus einer MySQL stored procedure in Python zu erhalten. Bisher habe ich stored procedures verwendet, die unter Perl zufriedenstellend laufen. Unter Python leider nicht. Deshalb habe ich das Beispiel von Oracle verwendet. Ist laut Website ziemlich einfach:
Code: Alles auswählen
CREATE PROCEDURE `sp1`(
in pStr1 varchar(20),
in pStr2 varchar(20),
out pConCat varchar(40)
)
BEGIN
set pConCat := CONCAT(pStr1, pStr2);
END
Code: Alles auswählen
class DbTest(object):
def __init__(self):
super(DbTest, self).__init__()
def main(self):
config = {
'user': 'reporting',
'password': 'reporting',
'host': 'host',
'database': 'bla'
}
back = mysql.connector.connect(**config)
cur = back.cursor(buffered=True)
args = ('ham', 'spam', '')
cur.callproc('sp1', args)
print(cur.fetchone())
cur.close()
back.close()
if __name__ == '__main__':
m = DbTest()
m.main()
Code: Alles auswählen
140613 22:28:12 87 Connect reporting@host on report
87 Query SET NAMES 'utf8' COLLATE 'utf8_general_ci'
87 Query SET @@session.autocommit = OFF
87 Query SET @_sp1_arg1='ham'
87 Query SET @_sp1_arg2='spam'
87 Query SET @_sp1_arg3=''
87 Query CALL sp1(@_sp1_arg1,@_sp1_arg2,@_sp1_arg3)
87 Query SELECT @_sp1_arg1,@_sp1_arg2,@_sp1_arg3
87 Quit
Kann mir da jemand einen kleinen Denkanstoß geben?