Oracle이나 Sysbase등에는 당연(?)히 있는 truncate table 명령이 DB2에는 없다. (V9.1까지는)

 

그래서, delete from을 이용하지 않고, 테이블 내용을 싹 지우고 싶을때는 다음의 편법(?)을 사용하면 된다.

 

 

 

Authorization : SYSADM, DBADM or CONTROL on the table

On Unix :

db2 connect to <dbname>
db2 import from /dev/null of del replace into <table-name>

On Windows:
Create a blank file C:\temp\blank.txt
db2 connect to <dbname>
db2 import from C:\temp\blank.txt of del replace into <tablename>


db2 import from d:\blank.txt of del replace into BUILD.BF_STORE

 

출처 : http://www.tek-tips.com/viewthread.cfm?qid=405708

이 글은 스프링노트에서 작성되었습니다.

Posted by 아프락사스

XX 증권에서 Build Forge 때문에, DB를 총 2번 옮겼다. 마이그레이션은 3번

Windows DB2 9.1 --> AIX DB 9.5

AIX DB 9.5, BF 7.0.2 --> AIX DB 9.5 BF 7.1.1 (마이그레이션 2회)

 

이때마다, 큰 도움을 받은 것이 ixl 형태로의 export/import였다.

이를 위해, 기존 DB에서 export/import의 script를 만들어주는 스크립트는 다음과 같다.

 

 %1 DB name
%2 schema name

echo "connect to %1;" > export`date +%m%d`.ddl
db2 "connect to %1"
db2 "select 'export to %2.'||tabname||'.ixf of ixf messages exp.msg select * from %2.'||tabname||';' from syscat.tables where tabschema='%2' and type='T' order by tabname" >> export`date +%m%d`.ddl
echo "connect reset;" >> export`date +%m%d`.ddl
echo "terminate;" >> export`date +%m%d`.ddl
db2 connect reset
db2 terminate


echo "connect to %1;" > import`date +%m%d`.ddl
db2 "connect to %1"
db2 "select "import from %2.'||tabname||.ixf of ixf commitcocunt 10000 messages imp.msg insert into %2.'||tabname||';' from syscat.tables where tabschema='%2' and type='T' order by tabname" >> import`date +%m%d`.ddl
echo "connect reset;" >> import`date +%m%d`.ddl
echo "terminate;" >> import`date +%m%d`.ddl
db2 connect reset
db2 terminate

 

당시(2009년 4월) 어디선가에서 찾아낸 것인데, 지금은 어디서 찾았는지를 알수가 없어서, 출처를 밝히지 못함을 죄송하게 생가합니다.

 

 

실행할 때는 편하게.. db2 -xvf

 

이 글은 스프링노트에서 작성되었습니다.

Posted by 아프락사스

BLOG main image

공지사항

카테고리

분류 전체보기 (160)
MAMP LAMP (1)
Open Project (4)
Knowhow (57)
JEE Technologies (3)
Rational Products (94)
Etc (0)