Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Z/OS上DB28.1.5中的应用程序ID_Java_Sql_Db2 - Fatal编程技术网

Java Z/OS上DB28.1.5中的应用程序ID

Java Z/OS上DB28.1.5中的应用程序ID,java,sql,db2,Java,Sql,Db2,我一直在研究如何在Z/OSremote上从DB28.1.5获取应用程序Id。我找到了这个链接: 在这个链接中,据说在8.2之前的db2中没有内置functionapplication_id来获取应用程序id。因此,我尝试了这个链接中提到的解决方案。但是,当在上一个链接中尝试使用SQL函数注册Java方法时,db2会这样警告我: DB21034E由于该命令不是SQL语句,因此将其作为SQL语句处理 有效的命令行处理器命令。在SQL处理过程中,它返回: SQL0104N在下面发现意外的标记FENC

我一直在研究如何在Z/OSremote上从DB28.1.5获取应用程序Id。我找到了这个链接:

在这个链接中,据说在8.2之前的db2中没有内置functionapplication_id来获取应用程序id。因此,我尝试了这个链接中提到的解决方案。但是,当在上一个链接中尝试使用SQL函数注册Java方法时,db2会这样警告我:

DB21034E由于该命令不是SQL语句,因此将其作为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."); 
           } 
       } 
     } 
}
请帮帮我


感谢您的提醒

SQL104N表示您的sql语句不正确

对于调用外部标量函数,我不确定db2luw情况下的z/OS,您可以使用SQLJ.INSTALL_JAR,如下所示

CALL SQLJ.INSTALL_JAR('file:///C:/whitegladiolus.jar','MYJARX')

另请参见

根据IBM的DB2forz/OSVersion8文档,不支持NotFenced。如文档中所述,DB2UniversalDatabaseVersion8支持NotFenced。尝试将“未防护”更改为“防护”