2014-11-07 6 views
1

고객 테이블의 레코드 수는 50,000입니다. 고객 테이블의 레코드 수는 2 백만입니다.CLP를 사용하여 bat 파일에서 DB2 sql 파일로 값을 전달하는 방법

DB2 명령 프롬프트를 사용하여 bat 파일을 사용하여 파일에서 내 sql을 실행하고 있습니다.

내가 만든 두 파일이 있습니다.

1 customerupdate.bat

DB2 CONNECT TO DBTEST USER DB2ADMIN USING XXXXXX 
set start=%1 
set end=%2 
db2 -l D:\vinu\CUSTOMERADDRESS.log -mstf D:\vinu\CUSTOMERADDRESS.sql 

2 customer.sql 여기

update customer set firstname='XXXX' where customercid between 1 and 50000 

나는 명령 프롬프트에서 1과 50000 값을 전달해야합니다.

업데이트 고객 설정 FIRSTNAME = 'XXXX'어디 customercid이

50000 1 사이 내가 그러나 내가 SQL 파일에 매개 변수를 전달해야 성공적으로 명령 아래 사용하여 SQL 이상 실행하고 있습니다.

C : \ 프로그램 파일 \ IBM \ SQLLIB \ BIN>있습니다 50000

1 customerupdate.bat : 내가 직접

DB2와 같은 쿼리를 사용할 수 없습니다를 -l D : \ vinu \ CUSTOMERADDRESS.log -mst "고객 세트 업데이트 firstname = 'XXXX'% 1에서 % 2 사이의 customercid" 쿼리는 SQL 파일에서만 제공되어야합니다.

답변

2

기존의 CLP에서는 그렇게 할 수 없지만 CLPPlus를 사용하면 가능합니다. 하여 customer.sql에서

:

clpplus -nw db2admin/[email protected]:port/dbtest @customer.sql 1 50000 

&1&2 각각 제 1 및 제 2 명령 행 인수로 치환 될 것이다

update customer set firstname='XXXX' where customercid between &1 and &2; 
exit 

호출 이것은 CLPPlus은 (는 JDBC를 사용하여 연결) .

+0

현재 DB2 버전이 DB2 v9.5.301.436 인 것 같습니다. CLPPlus는 지원되지 않습니다. DB2 문서에 따라 V9.7 이후에 지원됩니다. –

+1

9.7 클라이언트를 다운로드하여 DB2 9.5와 함께 사용할 수 있습니다. – mustaccio

+0

http://plutonium.cs.umanitoba.ca/downloads/DB2_client/ –

1

모든 SQL을 별도의 SQL 파일에 저장하는 대신 배치 파일에 명령문을 포함시키는 것이 어떻습니까?

DB2 CONNECT TO DBTEST USER DB2ADMIN USING XXXXXX 
set start=%1 
set end=%2 

set FIRSTNAME=Vinu 

db2 -l D:\vinu\CUSTOMERADDRESS.LOG "update customer set firstname = 'XXXXX' where customercid between %start% and %end" 

좀 더 오류 (당신이 실행을 중지 CLP의 -s 플래그에 의존 할 수 없기 때문에) 확인이 필요합니다,하지만 작동합니다.

+0

내 게시물에서 이미이 옵션을 언급했습니다. db2 -l D : \ vinu \ CUSTOMERADDRESS.log -mst "고객 갱신 세트 firstname = 'XXXX'where customercid from % 1 and % 2"조회는 SQL 파일에서만 제공되어야합니다. –

+0

아마 내가 명확하지 않다 : 나는 DB2 CLP를 통해 묻는 것을 할 수 없기 때문에 @ mustaccio에 대한이 대체 솔루션을 제공했다. –

+0

우리는 아래 링크에서 클라이언트를 업그레이드 할 수 있으며 CLPPlus 명령을 사용하여 sql 파일에서 스크립트를 실행할 수 있습니다. http://plutonium.cs.umanitoba.ca/downloads/DB2_client/ –