【问题标题】:How to get CREATE TABLE Statement from existing table in db2?如何从 db2 中的现有表中获取 CREATE TABLE 语句?
【发布时间】:2021-06-30 08:06:58
【问题描述】:

我正在使用 DB2 和 Oracle SQL Developer。 如何从现有表中获取 CREATE TABLE 语句?

表格太多,手动操作会很漫长。

【问题讨论】:

标签: sql db2 oracle-sqldeveloper


【解决方案1】:

在 SQLDeveloper 中,如果您可以看到该表,则 SQL 选项卡中有初始的 Create Table 语句

你应该为每张桌子都这样做,这是一种方法,但我不确定它对你来说是否足够快。

【讨论】:

  • 嗨。我看不到我的任何表的 SQL 选项卡。我能看到的唯一选项卡是列、数据、键、约束和索引。你能帮忙吗?
  • 转到查看 -> 编辑器 -> SQL。你能从这里看到吗?
  • 视图中没有“编辑器”选项
  • 您使用的 SQLDev 版本是什么?我正在使用版本:18.1.0.095.1630;如果您使用的是旧版本,建议您更新到最新版本,看看是否有此选项。
  • 我正在使用版本 3.1.07 并构建 MAIN-07.42
【解决方案2】:

在 Db2 中有一个特殊的 db2look 实用程序用于 DDL 提取。您可以在此链接中参考其选项及其含义。

如果您希望 SQL 访问它的功能,您可以使用支持大多数实用程序选项的 SYSPROC.DB2LK_GENERATE_DDL 存储过程。该例程有一个输出参数在其调用后获取“调用号”int 值。
如果是单表:

CALL SYSPROC.DB2LK_GENERATE_DDL ('-e -noview -t MY_SCHEMA.MY_TABLE', ?);

SELECT SQL_STMT
FROM SYSTOOLS.DB2LOOK_INFO_V
WHERE OP_TOKEN = <value_of_output_parameter_from_call_above>
ORDER BY OP_SEQUENCE;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    相关资源
    最近更新 更多