Ask a Question

can not update oracle table in soapui groovy

SOLVED
easyfish
Contributor

can not update oracle table in soapui groovy

Hi,
I am doing data driven testing. My requirement is to take data from request properties and response properties then insert or update oralce table.
Now I can take data from properties and can select data from table. The update or delete can never success. I did google  and find no solution. Stuck here. Could you please help?

-

-----Groovy Code------
import groovy.sql.Sql
import oracle.jdbc.driver.OracleTypes

//Establish JDBC Connection to the DB
def con = Sql.newInstance("jdbc:oracle:thin:@127.0.0.1:1521:XE", "TESTDB", "TESTDB", "oracle.jdbc.driver.OracleDriver");
def comcode = con.rows("select * from DDT where TEST_STEP_ID='3.3.3'")
log.info(comcode[0])

sql.executeUpdate("UPDATE DDT SET I_COMMODITY_CODE='99999' where TEST_STEP_ID='3.3.3'")
con.close()

-----End of Groovy Code------


Error message:
Groovy.lang.MissingPropertyException: No such property:sql for class:Sript1 error at line xx.

 

5 REPLIES 5
easyfish
Contributor

Sorry I can not remove the smiling faces. It is because the system convert ': o' and ': S' to faces.

nmrao
Community Hero

Looks the error is trivial.
Please use 'Sql' instead of 'sql' and see if that helps.


Regards,
Rao.

Thanks for your reply.

It does not help efter change from Sql to sql. It  popup another error as below. I even  tried to add import groovy.sql.* . it also does not work.

 

 

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: Script8.groovy: 2: unable to resolve class groovy.sql.sql @ line 2, column 1. import groovy.sql.sql ^ org.codehaus.groovy.syntax.SyntaxException: unable to resolve class groovy.sql.sql @ line 2, column 1. at org.codehaus.groovy.ast.ClassCodeVisitorSupport.addError(ClassCodeVisitorSupport.java:149) at org.codehaus.groovy.control.ResolveVisitor.visitClass(ResolveVisitor.java:1225) at org.codehaus.groovy.control.ResolveVisitor.startResolving(ResolveVisitor.java:178) at org.codehaus.groovy.control.CompilationUnit$11.call(CompilationUnit.java:651) at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:931) at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:593) at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:542) at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298) at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268) at groovy.lang.GroovyShell.parseClass(GroovyShell.java:694) at groovy.lang.GroovyShell.parse(GroovyShell.java:706) at groovy.lang.GroovyShell.parse(GroovyShell.java:742) at groovy.lang.GroovyShell.parse(GroovyShell.java:733) at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.compile(SoapUIGroovyScriptEngine.java:138) at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:89) at com.eviware.soapui.support.scripting.groovy.SoapUIProGroovyScriptEngineFactory$SoapUIProGroovyScriptEngine.run(SoapUIProGroovyScriptEngineFactory.java:79) at com.eviware.soapui.impl.wsdl.teststeps.WsdlGroovyScriptTestStep.run(WsdlGroovyScriptTestStep.java:156) at com.eviware.soapui.impl.wsdl.panels.teststeps.GroovyScriptStepDesktopPanel$RunAction$1.run(GroovyScriptStepDesktopPanel.java:263) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 1 error

NataliaB
Occasional Contributor

In what line does this error happen? Did you test your connection string (it can be done using soapui interface)?

 

Also this part looks confusing to me, you connection is called con not sql

sql.executeUpdate("UPDATE DDT SET I_COMMODITY_CODE='99999' where TEST_STEP_ID='3.3.3'")

 

Shouldn't it be con.executeUpdate("UPDATE DDT SET I_COMMODITY_CODE='99999' where TEST_STEP_ID='3.3.3'")?

 

And I belive you need import of goovy.sql.*

Thanks so much!

It should be con.executeUpdate("UPDATE DDT SET I_COMMODITY_CODE='8888' where TEST_STEP_ID='3.3.3'")

cancel
Showing results for 
Search instead for 
Did you mean: