2017-02-17 7 views
1

QShell의 DB2 명령을 통해 저장 프로 시저를 실행하려면 어떻게해야합니까? 저장 프로 시저의 변경을 테스트하는 간단한 방법이 필요합니까? IBM에IBM i에서 QShell의 DB2 명령을 통해 저장 프로 시저를 실행하는 방법은 무엇입니까?

은 내가

성공하지 않고 다양한 형식이 DB2 명령을 입력 한

QSH

과 QSHELL 시작

db2 call libraryname.stroredprocedurename('param1value' 'param2value' ?) 

db2 call libraryname.stroredprocedurename ('param1value' 'param2value' ?) 

db2 call libraryname.stroredprocedurename (param1value param2value ?) 

Only reference source I could find

는 전화 CLP를 사용하여 시도 해 봤나 저장된 프로 시저 CLP 예제가 없습니다. here

답변

1

저는 모든 SQL을 테스트하기 위해 Squirrel SQL Client http://squirrel-sql.sourceforge.net/을 사용합니다.

call libraryname.stroredprocedurename('param1value', 'param2value') 

참고 세퍼레이터 쉼표 ,이며 ? 이렇게 대화식라는 유효 파라미터 마커 아니다.

클라이언트 외에도 JDBC 드라이버가 필요합니다. 당신은 내가 여기 IBM의 JTOpen 드라이버를 사용할 수 있습니다

DB20000I은 SQL 명령이 성공적으로 완료 :

2

jt400.jar에 포함 된 JDBC 클라이언트를 사용할 수도 있습니다. 다음 명령을 사용하여 QSH에서 실행할 수 있습니다. DB2 : com.ibm.as400.access.jdbcClient.Main의 JDBC /qibm/proddata/os400/jt400/lib/jt400.jar

자바 -cp 로컬 호스트

클라이언트는 또한 저장 처리하는 프로 시저 출력 매개 변수 다음 예와 같이 표시됩니다.

create procedure add1 (inparm int, outparm int에서) language sql begin set outparm = inparm +1; 전화 ADD1 (1,?) 매개 변수 (1) CL 명령 행에서

+1

** - cp /qibm/proddata/os400/jt400/lib/jt400Native.jar** 또는 적어도 classpath에 jt400.jar보다 위에 jt400Native.jar가있을 수 있습니다. – user2338816

1

2를 반환하거나, CL 프로그램 내에서, 당신은 SQL 문을 실행하기 위해 RUNSQL 명령을 사용할 수 있습니다를 종료합니다.

여러 개의 임시 SQL 문을 사용하려는 경우 STRSQL 명령을 사용할 수 있습니다. 개인적으로, 필자는 iNavigator의 일부로 제공된 SQL 창을 사용하는 경향이 있습니다.