DB2JDBC:生成创建表命令

DB2JDBC:生成创建表命令,jdbc,db2,create-table,Jdbc,Db2,Create Table,我想生成一个“createtable”命令,即一个包含create语句的字符串,使用纯jdbc连接。是否有像oracles DBMS_METADATA.GET_DDL过程这样的可行解决方案 谢谢据我所知,没有一种工具允许您在DB2中仅使用SQL来实现这一点。内置模块不包括检索DDL的选项 但是,您可以创建一个外部Java用户定义函数来执行db2look,它是在DB2中提取DDL的工具 另一种方法是访问DB2目录(字典)并基于元数据重新创建DDL: SELECT 'create table ' |

我想生成一个“createtable”命令,即一个包含create语句的字符串,使用纯jdbc连接。是否有像oracles DBMS_METADATA.GET_DDL过程这样的可行解决方案


谢谢

据我所知,没有一种工具允许您在DB2中仅使用SQL来实现这一点。内置模块不包括检索DDL的选项

但是,您可以创建一个外部Java用户定义函数来执行db2look,它是在DB2中提取DDL的工具

另一种方法是访问DB2目录(字典)并基于元数据重新创建DDL:

SELECT 'create table ' || t.tabname || ' ( ' || getColumns(t.tabname) || ')' || ..
FROM SYSCAT.TABLES t
;
并创建函数来检索列等。

查看我的项目中的代码示例。 我可以使用纯JDBC获得IBMDB2的表DDL

总之,

  • 调用未记录的DB2函数调用 SYSPROC.DB2LK_GENERATE_DDL('-e-z SAMPLE',?)
  • 存储第二个INOUT 供以后使用的参数
  • 使用查询查找主对象的DDL

    挑选 操作序列、SQL语句、对象模式、对象类型、对象名称、SQL操作 从SYSTOOLS.DB2LOOK_INFO,其中OP_标记=?和OBJ_模式=?而OBJ_类型=?和OBJ_NAME=