Пример Java-программы для вызова хранимой процедуры TeradataJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Пример Java-программы для вызова хранимой процедуры Teradata

Сообщение Anonymous »

Я хочу вызвать процедуру хранения Teradata из программы Java. Может ли у кого-нибудь быть пример Java-программы?

Из-за некоторых ограничений я не смог создать некоторые функции UDF внутри Teradata, поэтому я разработал эти функции как хранимую процедуру в Teradata.

Теперь мне нужно вызвать эти процедуры с помощью программы Java.

Друзья, это моя Java-программа,

Код: Выделить всё

public static String executeme(String x,String y) throws SQLException, ClassNotFoundException
{
System.out.println(" Message: 2 " );
String connectionString = "jdbc:teradata://192.168.0.0/xyz,tmode=ANSI,charset=UTF8,DBS_PORT=1025,DATABASE=xyz";
String user = "xyz";
String passwd = "xxx";
System.out.println(" Message: 3 after url " +x );
String sCall = "{CALL "+x+"(?,?)}";
System.out.println(" Message: after call str " +sCall );
String result = null;

try
{
Class.forName("com.teradata.jdbc.TeraDriver");

Connection con = DriverManager.getConnection(connectionString, user, passwd);
System.out.println(" Message: after con "+con  );
CallableStatement cStmt = con.prepareCall(sCall);
cStmt.setString(1, y);
cStmt.registerOutParameter(2, Types.VARCHAR);
result = cStmt.getString(2);

return result;

}
catch(ClassNotFoundException e)
{
System.out.println(" Message: " + e);
return e.toString();
}

}
public static void main(String[] args) throws SQLException, ClassNotFoundException {
// TODO Auto-generated method stub

String outs=null;
System.out.println(" Message: 1 " );
outs = testing.executeme("sample_name", "ABCD");
System.out.println(outs);
}
Но при запуске этой программы я получаю сообщение об ошибке:

Код: Выделить всё

Message: 1
Message: 2
Message: 3 after url ment_f_swithin
Message: after con com.teradata.jdbc.jdk6.JDK6_SQL_Connection@85ede7b
Exception in thread "main" java.sql.SQLException: [Teradata Database] [TeraJDBC 14.10.00.42] [Error 5510] [SQLState HY000] Invalid session mode for   procedure execution.
at com.teradata.jdbc.jdbc_4.util.ErrorFactory.makeDatabaseSQLException  (ErrorFactory.java:308)
at com.teradata.jdbc.jdbc_4.statemachine.ReceiveInitSubState.action(ReceiveInitSubState.java:109)
at com.teradata.jdbc.jdbc_4.statemachine.StatementReceiveState.subStateMachine(StatementReceiveState.java:307)
at com.teradata.jdbc.jdbc_4.statemachine.StatementReceiveState.action(StatementReceiveState.java:196)
at com.teradata.jdbc.jdbc_4.statemachine.StatementController.runBody(StatementController.java:123)
at com.teradata.jdbc.jdbc_4.statemachine.StatementController.run(StatementController.java:114)
at com.teradata.jdbc.jdbc_4.TDStatement.executeStatement(TDStatement.java:386)
at com.teradata.jdbc.jdbc_4.TDStatement.prepareRequest(TDStatement.java:573)
at com.teradata.jdbc.jdbc_4.TDPreparedStatement.(TDPreparedStatement.java:117)
at com.teradata.jdbc.jdk6.JDK6_SQL_PreparedStatement.(JDK6_SQL_PreparedStatement.java:29)
at com.teradata.jdbc.jdk6.JDK6_SQL_CallableStatement.(JDK6_SQL_CallableStatement.java:23)
at com.teradata.jdbc.jdk6.JDK6_SQL_Connection.constructCallableStatement(JDK6_SQL_Connection.java:87)
at com.teradata.jdbc.jdbc_4.TDSession.prepareCall(TDSession.java:1373)
at com.teradata.jdbc.jdbc_4.TDSession.prepareCall(TDSession.java:1408)
at com.teradata.jdbc.jdbc_4.TDSession.prepareCall(TDSession.java:1394)
at java_func.testing.executeme(testing.java:32)
at java_func.testing.main(testing.java:55)
Я пробовал использовать все 3 режима ANSI,TERA,BTET. но я все равно получаю ту же ошибку, пожалуйста, подскажите мне, пожалуйста

Подробнее здесь: https://stackoverflow.com/questions/358 ... -procedure
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»