2017-11-08 8 views
0

커서 저장 프로 시저 cursor.callproc()을 호출하려고 할 때 몇 가지 문제가 발생했습니다. 복수의 입력 및 출력 매개 변수가있을 때, 거기에 아무 문제가 없었다 모든 것을 다음과 같이 작동합니다 : 나는 5 입/출력 매개 변수를 다음과 같이 MySQL의에서 절차를 만들어 : 파이썬에서python에서 cursor.callproc()을 사용하여 MySQL 저장 프로 시저 호출

create procedure enrollclass(in yeartime int, in quartertime char(20), in stid char(20), in course_no char(20), out result int) 

및 호출 절차 같은 것을 사용 이 :

arg2 = ('2016', 'Q2', info[0][0], course_no, 0) 
ac = cursor.callproc('enrollclass',arg2) 

이것은 잘 동작합니다. 그러나,이 같은 (NO 출력 매개 변수) 하나 개의 입력 매개 변수와 함께 다른 프로 시저를 호출하는 경우 :

arg3 = ('INFO1101') 
    cursor.callproc('prerequisite', arg3) 
다음

시스템이 나에게 오류를 제공 보관이 줄을 사용

create procedure prerequisite(in course_no char(20)) 

및 절차라고 메시지 'args는 시퀀스 여야합니다'. 시퀀스를 형성하는 다른 인수가 없으므로 어떻게 수정해야할지 모르겠습니다. 누군가 여기서 무슨 일이 일어 났는지 말해 줄래? 감사!

+0

에로, 쉼표를 추가 할 필요가 튜플

foo = (2 + 1) * 4 

대신 괄호의() 사용자 대괄호 []와 그것을 작동합니다, 단일 요소를 만듭니다. – PerunSS

답변

0

당신은

arg3 = ('INFO1101') 

가 하나의 요소를 포함하는 튜플을 만들 것이라고 생각하지만 그렇지 않습니다. 이 문맥에서 괄호는 "작업 순서"지정자로 동작합니다 (예 : 인수를 만들 때

arg3 = ('INFO1101',)