什么';从java程序中找出IBMIDB2400表约束的最佳方法是什么?

什么';从java程序中找出IBMIDB2400表约束的最佳方法是什么?,java,sql,jdbc,ibm-midrange,Java,Sql,Jdbc,Ibm Midrange,我需要一种让java层检查特定库(在IBMi/iSeries/System-I/AS400系统上)中所有文件/表存在哪些约束的方法。我知道我可以查询SYSIBM.TABLE_CONSTRAINTS视图来找到答案,但这是一种合法且安全的方法吗?有更好的办法吗 如果可以使用com.ibm.db2.jdbc.app.DB2Driver jdbc驱动程序使用Sql来完成,则更可取。但我愿意接受其他建议 注意:与IBMi平台上的DB2400无关的答案在这里没有用处。查询该表是合法和安全的。有一些可能的系统

我需要一种让java层检查特定库(在IBMi/iSeries/System-I/AS400系统上)中所有文件/表存在哪些约束的方法。我知道我可以查询SYSIBM.TABLE_CONSTRAINTS视图来找到答案,但这是一种合法且安全的方法吗?有更好的办法吗

如果可以使用com.ibm.db2.jdbc.app.DB2Driver jdbc驱动程序使用Sql来完成,则更可取。但我愿意接受其他建议


注意:与IBMi平台上的DB2400无关的答案在这里没有用处。

查询该表是合法和安全的。有一些可能的系统API调用或命令可用于SQL UDF,但不值得在该表上进行查询

您使用本机驱动程序而不是jt400.jar中的驱动程序有什么特别的原因吗?好问题Thorbjørn。原因是我们可以让SQL在作业的用户、权限等下运行,而不必提供单独的身份验证信息。据我所知,jt400.jar要求指定用户和密码…+1只是为了问一个IBMi问题。对于本地连接,您可以使用*CURRENT、*CURRENT作为凭据。不过它有网络连接,我不知道本机驱动程序是否有网络连接。我没有做太多的SQL工作,所以我不知道这两个驱动程序是否都能满足您的需要。出于未说明的安全原因,IBM不久前实际上删除了*CURRENT/*CURRENT支持。我假设这是正确的答案,所以我将您的答案称为答案。我想补充一点,这是ANS和ISO标准目录表。还有一个QSYS2.SYSCST表,它是iSeries特定的格式(不可移植或标准),也可以查询相同的信息。