Z/OS (리모트)의 db2 8.1.5에서 응용 프로그램 ID를 얻는 방법을 검색했습니다. http://www.ibm.com/developerworks/data/library/techarticle/0302stolze/0302stolze.htmlZ/OS에서 db2 8.1.5의 응용 프로그램 ID
이 링크에는 응용 프로그램 ID를 얻기 위해 8.2 이전의 db2에 내장 함수 (application_id)가 없다고합니다. 그래서, 나는이 링크에서 말한 해결책을 시도했다. 그러나 Java 메소드를 등록하기 위해 이전 링크에서 SQL 함수를 사용할 때 db2는 다음과 같이 경고합니다.
DB21034E 유효한 명령 행 처리기 명령이 이 아니기 때문에 명령문이 SQL 문으로 처리되었습니다. SQL 처리 중에 리턴되었습니다. SQL0104N ""다음에 예상치 못한 토큰 "FENCED"가 있습니다. 예상되는 토큰에는 "DETERMINISTIC, VARIANT"가 포함될 수 있습니다. 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
자바 방법 :
이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.");
}
}
}
}
나에게 advence에서
감사를 도와주세요