Forum Discussion

Scripter's avatar
Scripter
Occasional Contributor
7 years ago
Solved

Inserting 10000 rows of data in database

Hi all,   Goal: Use groovy to insert several rows in the database. Here I have to insert 10000 zipcodes with validity true or false in oracle database.   Achieved: Know to insert one row Followi...
  • nmrao's avatar
    7 years ago

    Define the zip codes and valid into a file as show below:

    data.txt

     

    zip, valid

    12345, true

    23456, false

     

     

    Read the above data.txt file in groovy script and insert the data.

     

     

    import groovy.sql.Sql
    import java.sql.SQLException
    import com.eviware.soapui.support.GroovyUtils.*
    
    //Define the file path of your data with zip and valid 
    def fileName = '/absolute/path/to/data.txt'
    
    try {
    	def dbURL = context.expand('${#Project#ORACLE12c}')
    	def dbUser = context.expand('${#Project#SchemaUser}')
    	def dbPass = context.expand('${#Project#Pass}')
    	def dbDriver = context.expand('${#Project#ORACLEDriver}')
    	def dbconf = context.expand('${#Project#SchemaConf}')
    	com.eviware.soapui.support.GroovyUtils.registerJdbcDriver(dbDriver)
    
    	def sql = Sql.newInstance(dbURL, dbUser, dbPass, dbDriver)
    	
    	
    	def lines = new File(fileName).readLines()  ?
    	lines.eachWithIndex { line, index ->
    	    if (index) {
    		def data = line.split(',')*.trim()
    		//sql.execute("DELETE FROM "+dbconf+".ZipCodes WHERE VALID='true'")
    		sql.execute("INSERT INTO ${dbconf}.ZipCodes (ZIPCODE, VALID) VALUES ('${data[0]}','${data[1]}')");      	   
    	    }	    	
    	}
    
    } catch (SQLException e){
       def tmp = e.getSQLState ()
       log.error (tmp, e)
    }