I tried to use Groovy script from tutorial to connect to Oracle SQL database:
_ def connectDB(String dataFile){_
_ //Load driver class for your specific database type_
_ Class.forName(“oracle.jdbc.driver.OracleDriver”)_
_ String connectionString = “jdbc:sqlite:” + dataFile_
_ if(connection != null && !connection.isClosed()){_
_ connection.close()_
_ }_
_ connection = DriverManager.getConnection(connectionString)_
_ return connection_
_ }_
There is sqlite in connection string, but not sure which value should I use there. (I tried jdbc:oracle too.)
Hafiz
July 3, 2018, 4:33am
2
Hi i would like to know as well. I tried:
String conn = “jdbc:oracle:thin:@” + host + “:” + port + “/” + dbname
String conn = “jdbc:oracle:thin:@” + host + “:” + port + “:” + dbname
Both is giving me error: Cannot cast object ‘oracle.jdbc.driver.T4CConnection@45312be2’ with class ‘oracle.jdbc.driver.T4CConnection’ to class ‘com.mysql.jdbc.Connection’
Hafiz said:
with class ‘oracle.jdbc.driver.T4CConnection’ to class ‘com.mysql.jdbc.Connection’
you need to import correct connection class not one used from MySQL
plaidshirtakos said:
I tried to use Groovy script from tutorial to connect to Oracle SQL database:
_ def connectDB(String dataFile){_
_ //Load driver class for your specific database type_
_ Class.forName(“oracle.jdbc.driver.OracleDriver”)_
_ String connectionString = “jdbc:sqlite:” + dataFile_
_ if(connection != null && !connection.isClosed()){_
_ connection.close()_
_ }_
_ connection = DriverManager.getConnection(connectionString)_
_ return connection_
_ }_
There is sqlite in connection string, but not sure which value should I use there. (I tried jdbc:oracle too.)
this is reading for you:
https://www.dba-resources.com/oracle/jdbc-connection-strings-for-oracle-thin-driver/
https://docs.oracle.com/cd/E11882_01/appdev.112/e13995/oracle/jdbc/OracleDriver.html
Hafiz
July 3, 2018, 5:57am
5
Andrej Podhajský said:
Hafiz said:
with class ‘oracle.jdbc.driver.T4CConnection’ to class ‘com.mysql.jdbc.Connection’
you need to import correct connection class not one used from MySQL
Hi Andrej
I have this declared:
import oracle.jdbc.driver.OracleDriver
Im getting same error
This is how i did it:
1. Create Custom keyword with this imports:
import com.kms.katalon.core.annotation.Keyword
import groovy.sql.Sql
public class executeSQL {
@Keyword
def execSQL(String host, String port, String sid, String username, String password){
String connectionString
connectionString = “jdbc:oracle:thin:@” + host + “:” + port + “:” + sid
def sql = Sql.newInstance(connectionString, username, password)
try {
sql.eachRow('select sysdate from dual'){ row ->
println row
}
} finally {
sql.close()
}
}
}
2: how to call:
CustomKeywords.‘executeSQL.execSQL’(“YOUR_IP”,
“YOUR_PORT”, “YOUR_SID”, “YOUR_USERNAME”,
“YOUR_PASSWORD” )
4 Likes
helolo @hafiz
please mark @crokatalontest response as best
Hi, how you you write the code for SQLServer?
crokatalontest said:
This is how i did it:
1. Create Custom keyword with this imports:
import com.kms.katalon.core.annotation.Keyword
import groovy.sql.Sql
public class executeSQL {
@Keyword
def execSQL(String host, String port, String sid, String username, String password){
String connectionString
connectionString = “jdbc:oracle:thin:@” + host + “:” + port + “:” + sid
def sql = Sql.newInstance(connectionString, username, password)
try {
sql.eachRow('select sysdate from dual'){ row ->
println row
}
} finally {
sql.close()
}
}
}
2: how to call:
CustomKeywords.‘executeSQL.execSQL’(“YOUR_IP”,
“YOUR_PORT”, “YOUR_SID”, “YOUR_USERNAME”,
“YOUR_PASSWORD” )
What is the purpose of this:
{ row ->
This block of code causes errors.
1 Like
I had this error:
Cannot cast object ‘oracle.jdbc.driver.OracleStatementWrapper@53ed09e8’ with class ‘oracle.jdbc.driver.OracleStatementWrapper’ to class ‘com.mysql.jdbc.Statement’
And this tip solved the problem. Thanks a lot.
Hi,
I am currently working my way into Katalon Free and trying to connect to the Oracle database to then execute an SQL command.
I have created a custom keyword and filled it with the following content. (I’ve sort of adopted the solution here, which probably doesn’t work for me.)
import groovy.sql.Sql
public class resetauthflag {
@Keyword
def execSQL(String host, String port, String sid, String username, String password){
String connectionString
connectionString = 'jdbc:oracle:thin:@' + host + ':' + port + ':' + sid
def sql = Sql.newInstance(connectionString, username, password)
{
sql.eachRow('delete from XXXXXX ka where ka.kunde_id in (select id from kunde k where k.nummer = 123456'){ row ->
println row
}
}
{
sql.close()
}
}
}
In my test file I have added the keyword
CustomKeywords.'database.resetauthflag.execSQL'('host', 'port', 'sid', 'user', 'password')
when i run the whole thing i get the following error
Caused by: groovy.lang.GroovyRuntimeException: Could not find matching constructor for: groovy.sql.Sql(java.lang.String, java.lang.String, java.lang.String, database.resetauthflag$_execSQL_closure1, database.resetauthflag$_execSQL_closure2)
What am I doing wrong? I am grateful for any support.
How about try:
def sql = Sql.newInstance(connectionString, "${username}", "${password}")
Groovy - Closures (tutorialspoint.com)
It worked for me too, many thanks
system
August 30, 2024, 12:01am
15
Hi there,
Thank you very much for your topic! It may take a little while before Katalon team member or others forum members respond to you.
In the meantime, you can double-check your post to see if you can add any extra information i.e. error logs, HTML codes, screenshots, etc. Check out this posting guide to help us help you better!
Thanks!
Katalon Community team