2014-11-07 3 views
0

Я хотел бы сгенерировать команду create table, т. Е. Строку, содержащую оператор create, с чистым соединением jdbc. Существует ли жизнеспособное решение, подобное процедуре DBMS_METADATA.GET_DDL oracles?db2 jdbc: generate create table command

Благодаря

ответ

0

Насколько я знаю, это не инструмент, который позволяет сделать это в DB2 только с SQL. Встроенные модули не включают в себя возможность получения DDL.

Однако, вы можете создать внешнюю Java-функцию, определенную пользователем, которая выполняет db2look, которая является инструментом для извлечения DDls в DB2.

Другой способ сделать это, чтобы получить доступ к каталогу DB2 (словарь) и воссоздать DDL на основе метаданных:

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

И создать функции извлекает столбцы и т.д.

0

Берут посмотрите на мой проект http://code.google.com/p/db2-scheme2ddl/ для образцов кода. Я могу получить таблицу DDL для IBM DB2 с чистым JDBC.

Короче говоря,

  1. Invoke недокументированных DB2 функции ВЫЗОВ SYSPROC.DB2LK_GENERATE_DDL ('- е -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 =?