########################################################### # Connect to DB2 using Type 4 Java driver. ########################################################### puts "\nexecuting [info script]\n" # make script drive independent. set drive [lindex [file split [info nameofexecutable]] 0 ] puts "\nproclib = $drive/scripts/TCL/proclib" ######################################################## # Source packages. ######################################################## package require java ###################################### # Proc - check mq listener. ###################################### proc db2Connect { serverName databaseName portNumber driverType username password sqlQuery } { puts "\ndb2Connect \n" # import required classes java::import java.sql.Connection java::import java.sql.DriverManager java::import java.sql.ResultSet java::import java.sql.SQLWarning java::import java.sql.Statement java::import java.sql.ResultSetMetaData java::import com.ibm.db2.jcc.DB2Driver java::import com.ibm.db2.jcc.DB2Driver # load db2 driver . java::call Class forName com.ibm.db2.jcc.DB2Driver # set the connection url. append url jdbc:db2:// append url $serverName append url : append url $portNumber append url / append url $databaseName append url : append url user\=$username append url \; append url password\=$password append url \; puts "connection URL is: $url\n" set ConnectionI [ java::call DriverManager getConnection $url ] puts "transaction isolation level is [ $ConnectionI getTransactionIsolation ] \n" puts "Create query\n" set opt1 [java::field ResultSet TYPE_SCROLL_INSENSITIVE] set opt2 [java::field ResultSet CONCUR_READ_ONLY ] set StatementI [ $ConnectionI createStatement $opt1 $opt2 ] $StatementI execute $sqlQuery set ResultSetI [ $StatementI getResultSet ] puts "get a list of return columns\n" set ResultSetMetaDataI [ $ResultSetI getMetaData ] set columnCount [ $ResultSetMetaDataI getColumnCount ] set i 1 while { $i <= $columnCount } { set columnName [ $ResultSetMetaDataI getColumnName $i ] lappend columnList $columnName incr i } unset i puts "loop over the results set and print column name, column value.\n" while { [ $ResultSetI next ] == 1 } { foreach i $columnList { puts [ format "%-5s %-30s %-s" " " "$i" "[ $ResultSetI getString $i ]" ] } puts [ format "\n%-5s \n" [ string repeat "#" 50] ] } puts "Close Connections\n" $ResultSetI close $ConnectionI close } ###################################### # Main Control. ###################################### # build tcl classpath append x $drive/IBM/SQLLIB/java/db2jcc.jar; append x $drive/IBM/SQLLIB/java/db2jcc_license_cu.jar; append x $drive/IBM/SQLLIB/java/db2jcc_license_cisuz.jar; set env(TCL_CLASSPATH) $x puts "\nTCL_CLASSPATH = [ array get env TCL_CLASSPATH ]\n" set reportFile $drive/reports/notify/mqConnect.txt set reportFileId [ open $reportFile w ] set serverName yourserver set databaseName yourDatabase set portNumber 50000 set driverType 4 set username yourUserid set password yourPassword set sqlQuery "select * from abcd.customer_table where char(customer) like '12345%'" db2Connect $serverName $databaseName $portNumber $driverType $username $password $sqlQuery