Я искал, как получить идентификатор приложения из db2 8.1.5 в Z / OS (удаленно). Я нашел эту ссылку:
http://www.ibm.com/developerworks/data/library/techarticle/0302stolze/0302stolze.html
В этой ссылке сказано, что в db2 до 8.2 нет встроенной функции (application_id) для получения идентификатора приложения. Итак, я попробовал решение, указанное в этой ссылке. Но при попытке функции SQL в предыдущей ссылке зарегистрировать метод Java, db2 предупреждает меня следующим образом:
DB21034E Команда была обработана как оператор SQL, поскольку она не была
допустимая команда процессора командной строки. Во время обработки SQL он вернул:
SQL0104N Неожиданный токен "FENCED" был найден после "". ожидаемый
токены могут включать: «ДЕТЕРМИНИСТИЧЕСКИЙ, ВАРИАНТ». SQLSTATE = 42601
Функция, которую я попробовал:
CREATE FUNCTION application_id()
RETURNS VARCHAR(128)
SPECIFIC applId EXTERNAL NAME 'appl_id.getApplicationId'
NOT FENCED LANGUAGE JAVA PARAMETER STYLE DB2GENERAL
DETERMINISTIC
NO SQL NO EXTERNAL ACTION ALLOW PARALLEL DBINFO
Метод Java:
import java.sql.*;
import COM.ibm.db2.app.*;
public class appl_id extends UDF
{
public void getApplicationId(String result) throws Exception
{
try {
// set the output parameter based on DBINFO
set(1, getDBapplid());
}
catch (Exception e) {
setSQLstate("38XXX");
if (e.getMessage().length() > 0) {
setSQLmessage("Exception '" + e.getMessage() +
"' encountered.");
}
else {
setSQLmessage("Exception '" + e.toString() +
"' encountered.");
}
}
}
}
Пожалуйста, помогите мне
Спасибо в адвенсе