use strict;
use warnings;
use Inline Java => <<'END';
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.io.PrintWriter;
public class TeradataConnectionTest {
public static void testConnection(String jdbcUrl, String username, Str
+ing password) {
try {
DriverManager.setLogWriter(new PrintWriter(System.out));
//DriverManager.registerDriver(new com.teradata.jdbc.TeraDriver()); Di
+d not work
//Class.forName("com.teradata.jdbc.TeraDriver"); Did not work
// Class.forName("com.ncr.teradata.TeraDriver"); Did not work
Connection connection = DriverManager.getConnection(jdbcUrl, username,
+ password);
System.out.println("Connected to Teradata!");
// Perform your database operations here
connection.close();
} catch (SQLException e)
{
// Print the stack trace or error message
e.printStackTrace();
System.err.println("SQLException: " + e.getMessage());
} catch (Exception e) {
// Handle other exceptions
e.printStackTrace();
}
}
}
END
# Your Teradata connection details
my $jdbcUrl = "jdbc:teradata://172.28.130.20/TMODE=TERA,DBS_PORT=1025,
+CHARSET=UTF8,LOGMECH=LDAP,SSLMODE=ALLOW;TeraDriver=com.teradata.jdbc.
+TeraDriver";
my $username = "XXXXX";
my $password = "XXXXX";
# Call the Java method to test the connection
TeradataConnectionTest->testConnection($jdbcUrl, $username, $password)
+;
I am receiving the following error:
DriverManager.getConnection("jdbc:teradata://172.28.130.20/TMODE=TERA,
+DBS_PORT=1025,CHARSET=UTF8,LOGMECH=LDAP,SSLMODE=ALLOW;TeraDriver=com.
+teradata.jdbc.TeraDriver")
registerDriver: io.trino.jdbc.TrinoDriver@2dd9625c
DriverManager.initialize: jdbc.drivers = null
JDBC DriverManager initialized
trying io.trino.jdbc.TrinoDriver
getConnection: no suitable driver found for jdbc:teradata://172.28.130
+.20/TMODE=TERA,DBS_PORT=1025,CHARSET=UTF8,LOGMECH=LDAP,SSLMODE=ALLOW;
+TeraDriver=com.teradata.jdbc.TeraDriver
java.sql.SQLException: No suitable driver found for jdbc:teradata://17
+2.28.130.20/TMODE=TERA,DBS_PORT=1025,CHARSET=UTF8,LOGMECH=LDAP,SSLMOD
+E=ALLOW;TeraDriver=com.teradata.jdbc.TeraDriver
at java.sql/java.sql.DriverManager.getConnection(DriverManager
+.java:708)
at java.sql/java.sql.DriverManager.getConnection(DriverManager
+.java:230)
at TeradataConnectionTest.testConnection(TeradataConnectionTes
+t.java:15)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.i
+nvoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:577)
at InlineJavaUserClassLink.invoke(InlineJavaUserClassLink.java
+:11)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.i
+nvoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:577)
at org.perl.inline.java.InlineJavaUserClassLoader.invoke_via_l
+ink(InlineJavaUserClassLoader.java:86)
at org.perl.inline.java.InlineJavaUserClassLoader.invoke(Inlin
+eJavaUserClassLoader.java:131)
at org.perl.inline.java.InlineJavaProtocol.CallJavaMethod(Inli
+neJavaProtocol.java:283)
at org.perl.inline.java.InlineJavaProtocol.Do(InlineJavaProtoc
+ol.java:41)
at org.perl.inline.java.InlineJavaServer.ProcessCommand(Inline
+JavaServer.java:153)
at org.perl.inline.java.InlineJavaServer.ProcessCommand(Inline
+JavaServer.java:142)
at org.perl.inline.java.InlineJavaServerThread.run(InlineJavaS
+erverThread.java:51)
SQLException: SQLState(08001)
java.sql.SQLException: No suitable driver found for jdbc:teradata://17
+2.28.130.20/TMODE=TERA,DBS_PORT=1025,CHARSET=UTF8,LOGMECH=LDAP,SSLMOD
+E=ALLOW;TeraDriver=com.teradata.jdbc.TeraDriver
at java.sql/java.sql.DriverManager.getConnection(DriverManager
+.java:708)
at java.sql/java.sql.DriverManager.getConnection(DriverManager
+.java:230)
at TeradataConnectionTest.testConnection(TeradataConnectionTes
+t.java:15)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.i
+nvoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:577)
at InlineJavaUserClassLink.invoke(InlineJavaUserClassLink.java
+:11)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.i
+nvoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:577)
at org.perl.inline.java.InlineJavaUserClassLoader.invoke_via_l
+ink(InlineJavaUserClassLoader.java:86)
at org.perl.inline.java.InlineJavaUserClassLoader.invoke(Inlin
+eJavaUserClassLoader.java:131)
at org.perl.inline.java.InlineJavaProtocol.CallJavaMethod(Inli
+neJavaProtocol.java:283)
at org.perl.inline.java.InlineJavaProtocol.Do(InlineJavaProtoc
+ol.java:41)
at org.perl.inline.java.InlineJavaServer.ProcessCommand(Inline
+JavaServer.java:153)
at org.perl.inline.java.InlineJavaServer.ProcessCommand(Inline
+JavaServer.java:142)
at org.perl.inline.java.InlineJavaServerThread.run(InlineJavaS
+erverThread.java:51)
SQLException: No suitable driver found for jdbc:teradata://172.28.130.
+20/TMODE=TERA,DBS_PORT=1025,CHARSET=UTF8,LOGMECH=LDAP,SSLMODE=ALLOW;T
+eraDriver=com.teradata.jdbc.TeraDriver
So, it is almost like it is calling out to the trino driver, not the Teradata driver. How would appropriately register the driver, what is the syntax?
|