Ich habe eine Java Stored Procedure geschrieben, in ein jar gepackt und in die Teradata Datenbank installiert. Ich möchte die Standarddatenbankverbindung wie beschrieben here verwenden. Der Großteil des Codes wurde vom Teradata-Assistenten für gespeicherte Prozeduren generiert.Teradata externer Java Stored Procedure Fehler: Kein geeigneter Treiber für jdbc gefunden: default: connection
public class TestSql {
public static void getEntryById(int id, String[] resultStrings) throws SQLException {
Connection con = DriverManager.getConnection("jdbc:default:connection");
String sql = "SELECT x FROM TEST_TABLE WHERE ID = " + id + ";";
Statement stmt = (Statement) con.createStatement();
ResultSet rs1 = ((java.sql.Statement) stmt).executeQuery(sql);
rs1.next();
String resultString = rs1.getString(1);
stmt.close();
con.close();
resultStrings[0] = resultString;
}
}
Ich installierte das Glas:
CALL SQLJ.REPLACE_JAR('CJ!/my/path/Teradata-SqlTest.jar','test');
und schuf das Verfahren:
REPLACE PROCEDURE "db"."getEntryById" (
IN "id" INTEGER,
OUT "resultString" VARCHAR(1024))
LANGUAGE JAVA
MODIFIES SQL DATA
PARAMETER STYLE JAVA
EXTERNAL NAME 'test:my.package.TestSql.getEntryById(int,java.lang.String[])';
Nun, wenn ich diese Prozedur aufrufen, erhalte ich diese Fehlermeldung:
Executed as Single statement. Failed [7827 : 39001] Java SQL Exception SQLSTATE 39001: Invalid SQL state (08001: No suitable driver found for jdbc:default:connection).
Jetzt wenn ich mich von Terada abmelde ta und wieder anmelden und rufen Sie die Prozedur, die Fehlermeldung wird:
Executed as Single statement. Failed [7827 : 39001] A default connection for a Java Stored Procedure has not been established for this thread.).
Was ist das Problem hier? Ich verbinde mich über das Eclipse-Plugin mit Teradata. Teradata v. 15.0.1.01.