sexta-feira, 15 de outubro de 2010

ADMIN_CMD DB2 - Comandos CLP

Comandos como export, import, load, ... são chamados comandos CLP (Command Line Processor) e não podem ser executados diretamente por uma aplicação cliente via ODBC ou JDBC como fazemos com comandos SQL (select, insert, update, ...)
Para executar os comandos CLP existe uma procedure chamada "admin_cmd" utilizada para esse propósito.

Pequeno exemplo Java para chamada dessa procedure:
Nesse exemplo temos a tabela "banco01.area" no servidor "servidor01"

Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
con = DriverManager.getConnection("jdbc:db2://servidor01:50000/" + "banco01", "usuario", "senha");
String sql = "CALL SYSPROC.ADMIN_CMD(?)";
proc_stmt = con.prepareCall(sql);
String param = "export to c:\\temp\\area4.txt of del messages on server select * from area";
proc_stmt.setString(1, param);

rs = proc_stmt.executeQuery();
if (rs.next()) {
System.out.println("Total number of rows exported : " + rs.getString(1));
System.out.println("SQL for retrieving the messages: " + rs.getString(2));
System.out.println("SQL for removing the messages : " + rs.getString(3));

System.out.println(" ");
proc_stmt_msg = con.prepareCall(rs.getString(2));
rs_msg = proc_stmt_msg.executeQuery();
while (rs_msg.next()) {
System.out.println(rs_msg.getString(1) + rs_msg.getString(2));
}
proc_stmt_msg.close();
rs_msg.close();
}

proc_stmt.close();
rs.close();
con.close();

Link de referência:
http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.apdv.sample.doc/doc/java_jdbc/s-AdmCmdImport-java.htm

Nenhum comentário:

Postar um comentário