我创建了一个名为“ off_shift_timing”的过程。
当我从客户端执行以下查询时,它会给我预期的结果。
查询:-“执行过程off_shift_timing('13c236ed-ebcf-11e8-8549-f6bfe15867a6')”
但是,当我尝试使用ibm_db_dbi模块中名为callproc的函数执行相同的过程时,它将返回参数值,而不是预期的结果。
示例代码:-
连接类:
import ibm_db_dbi as db
class DatabaseInformix:
Informix_DATABASE = data["Informix_DATABASE"]
Informix_HOSTNAME = data["Informix_HOSTNAME"]
Informix_UID = data["Informix_UID"]
Informix_PWD = data["Informix_PWD"]
Informix_PORT = data["Informix_PORT"]
def __init__(self):
try:
self.connection = db.connect("DATABASE=%s;HOSTNAME=%s;PORT=%s;PROTOCOL=TCPIP;UID=%s;PWD=%s;" % (self.Informix_DATABASE, self.Informix_HOSTNAME, self.Informix_PORT, self.Informix_UID, self.Informix_PWD), "", "")
self.cursor = self.connection.cursor()
except db.Error as e:
self.connection = ""
logger.error('Informix Connection: %s', e._message)
def query1(self, procname, param1):
if(self.connection != ""):
try:
return self.cursor.callproc(procname, param1)
except db.Error as e:
logger.error('DB001 error in query : %s', e._message)
主类:-
obj1 = DatabaseInformix()
project_guid = '13c236ed-ebcf-11e8-8549-f6bfe15867a6'
results2 = obj1.query1('off_shift_timing', (project_guid,))
print(results2)
输出:-
('13c236ed-ebcf-11e8-8549-f6bfe15867a6',)
但不是实际输出,它是元组形式的变量。