【问题标题】:db2 jdbc: generate create table commanddb2 jdbc:生成创建表命令
【发布时间】:2014-12-15 04:41:51
【问题描述】:

我想生成一个“create table”命令,即一个包含 create 语句的字符串,带有一个纯 jdbc 连接。是否有类似 oracles DBMS_METADATA.GET_DDL 过程的可行解决方案?

谢谢

【问题讨论】:

    标签: jdbc db2 create-table


    【解决方案1】:

    据我所知,没有一种工具可以让您在 DB2 中仅使用 SQL 来执行此操作。内置模块不包含检索 DDL 的选项。

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

    其他方法是访问 DB2 目录(字典)并根据元数据重新创建 DDL:

    SELECT 'create table ' || t.tabname || ' ( ' || getColumns(t.tabname) || ')' || ..
    FROM SYSCAT.TABLES t
    ;
    

    并创建函数来检索列等。

    【讨论】:

      【解决方案2】:

      查看我的项目http://code.google.com/p/db2-scheme2ddl/ 以获取代码示例。 我可以使用纯 JDBC 获得 IBM DB2 的表 DDL。

      总之,

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

        选择 OP_SEQUENCE、SQL_STMT、OBJ_SCHEMA、OBJ_TYPE、OBJ_NAME、SQL_OPERATION FROM SYSTOOLS.DB2LOOK_INFO 其中 OP_TOKEN=?和 OBJ_SCHEMA=?和 OBJ_TYPE=?和 OBJ_NAME=?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-25
        • 2020-03-21
        • 2021-08-15
        • 1970-01-01
        • 2019-04-13
        • 1970-01-01
        • 1970-01-01
        • 2017-11-09
        相关资源
        最近更新 更多