Javaストアドプロシージャを作成し、jarにパッケージ化し、Teradataデータベースにインストールしました。 hereのように、デフォルトのデータベース接続を使用したいと思います。ほとんどのコードは、ストアド・プロシージャ用のTeradataウィザードによって生成されました。Teradataの外部Javaストアドプロシージャエラー:jdbc: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;
}
}
私はjarファイルがインストール:
CALL SQLJ.REPLACE_JAR('CJ!/my/path/Teradata-SqlTest.jar','test');
を、プロシージャを作成しました:
:私はこのプロシージャを呼び出すときExecuted as Single statement. Failed [7827 : 39001] Java SQL Exception SQLSTATE 39001: Invalid SQL state (08001: No suitable driver found for jdbc:default:connection).
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[])';
は今、私は、このエラーメッセージが表示されます
今すぐTeradaからログオフすると再度ログオンして手順を呼び出すと、エラーメッセージは次のようになります。
Executed as Single statement. Failed [7827 : 39001] A default connection for a Java Stored Procedure has not been established for this thread.).
ここで問題は何ですか? Eclipseプラグインを使用してTeradataに接続しています。 Teradata v。15.0.1.01。