Я создал процедуру с именем 'off_shift_timing'.
Когда я выполняю запрос ниже от клиента, он дает мне ожидаемый результат.
query: - "выполнить процедуру off_shift_timing ('13c236ed-ebcf-11e8-8549-f6bfe15867a6 ') "
Но когда я пытаюсь выполнить ту же процедуру, используя функцию с именем callproc в модуле ibm_db_dbi, она возвращает значение параметра, а не ожидаемый результат.
Пример кода: -
класс соединения:
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',)
но этоне фактический вывод это переменная в виде кортежа.