Экспорт структуры данных пользователя в SQL

Экспорт структуры данных пользователя в SQL позволяет экспортировать данные объектов в виде SQL-запросов в файл.

Для экспорта структуры данных пользователя в SQL предназначено диалоговое окно (рис. 179).

Экспорт объектов пользователя в SQL
Рисунок 179. Экспорт объектов пользователя в SQL

Окно можно вызвать следующим способом:

  1. в Инспекторе выбрать узел Соединения;

  2. вызвать пункт главного меню Соединение = > Экспорт объектов в SQL или контекстного меню Экспорт объектов в SQL.

Диалоговое окно отражает условия выгрузки данных и позволяет:

  1. выбрать каталог и имя файла для экспортируемого объекта (поле Файл-приемник);

  2. произвести настройки экспорта, применимые для всех объектов:

    • выбрать кодировку (в раскрывающемся списке поля Кодировка);

    • выбрать экспортируемые объекты (установив флаг на интересующем объекте в списке поля Выберите объекты) и дополнительные настройки экспорта для них;

  3. таблицы: настройки, регулирующие экспорт таблиц, представлены в поле Схемы таблиц и позволяют:

    • включать кодировки;

    • включать индексы;

    • включать ссылки;

    • включать файлы;

    • включать параметры;

    • включать уровни доступа;

    • включать ограничения;

    • включать лимиты записей.

    Пример:

    Экспорт таблицы AUTO пользователя SYSTEM в виде SQL-запроса в файл с включением дополнительных настроек поля Схемы таблиц:

    create table "AUTO" character set "DEFAULT" (
        "MAKE" char (20) character set "CP866" default null,
        "MODEL" char (20) character set "CP866" default null,
        "BODYTYPE" char (15) character set "CP866" default null,
        "CYLNDERS" int default null,
        "HORSEPWR" int default null,
        "DSPLCMNT" int default null,
        "WEIGHT" int default null,
        "COLOR" char (10) character set "CP866" default null,
        "YEAR" int default null,
        "SERIALNO" char (16) character set "CP866" default null,
        "CHKDATE" int default null,
        "CHKMILE" int default null,
        "PERSONID" int
      )
      maxrowid 1022 pctfill 100 blobpct 50
      indexfiles 1 ( 'SY00' 28 )
      datafiles 1 ( 'SY00' 13 );
    alter table "SYSTEM"."AUTO" add primary key ("PERSONID");
  4. представления: настройки, регулирующие экспорт представлений, представлены в поле Представления и позволяют:

    • экспортировать материализованные представления (поле Включать слово 'materialized');

    • включать уровни доступа.

    Пример:

    create view "TABLES" ("TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "TABLE_TYPE", "REMARKS") as
     SELECT CAST '' AS VARCHAR ( 66 ) AS "TABLE_CAT" ,
            CAST RTRIM ("$$$S34" ) AS VARCHAR ( 66 ) AS "TABLE_SCHEM" ,
            CAST RTRIM ( "$$$S13") AS VARCHAR ( 66 ) AS "TABLE_NAME" ,
            CAST ( CASE GETBYTE ( "$$$S14", 6 )
                  WHEN 1 THEN 'VIEW'
                  WHEN 2 THEN 'SYNONYM'
                  ELSE CASE WHEN "$$$S11" <  4
                            THEN 'SYSTEM TABLE'
                            ELSE 'TABLE'
                       END
                  END ) AS VARCHAR (20) AS "TABLE_TYPE" ,
            CAST '' AS VARCHAR ( 1 ) AS "REMARKS"
       FROM "LINTER_SYSTEM_USER" . "$$$SYSRL" ,
            "LINTER_SYSTEM_USER" . "$$$USR"
      WHERE GETBYTE ( "$$$S14" , 6 ) <  4
        AND "$$$S12" = "$$$S31"
        AND "$$$S32" = 0
        AND "$$$S11" <  > 0
    UNION ALL
    SELECT CAST '' AS VARCHAR (66 ) AS "TABLE_CAT" ,
           CAST '' AS VARCHAR ( 66 ) AS "TABLE_SCHEM" ,
           CAST RTRIM ( "$$$S13" ) AS VARCHAR (66) AS "TABLE_NAME" ,
           CAST 'SYNONYM' AS VARCHAR ( 20 ) AS "TABLE_TYPE" ,
           CAST '' AS VARCHAR ( 1 ) AS "REMARKS"
      FROM "LINTER_SYSTEM_USER"."$$$SYSRL"
     WHERE "$$$S12" = -1
       AND "$$$S11" <  > 0;
    
  5. синонимы: дополнительные настройки в группе Синонимы позволяют отсортировать синонимы текущего пользователя для последующего экспорта (кнопка Выбрать только синонимы моих объектов группы Синонимы).

    Пример:

    create public synonym "$$$COMMENTS" for "$$$COMMENTS";
    create public synonym "TABLES" for "TABLES";
    
  6. процедуры: экспортирует процедуры.

    Пример:

    create or replace procedure p_create_table(in ch_table_name char(66)) for debug
    declare
      exception noresults for custom 100; //
    code
      execute direct "drop table " + ch_table_name + ";";      //
      execute direct "create table "+ch_table_name+"(msg char(255), i_param int);";  //
      if errcode() <  > 0 then
        signal noresults;   //
      endif
    exceptions
      when others then
        resignal;  //
    end;
    
  7. триггеры: экспортирует триггеры.

    Пример:

    create or replace trigger tr_InsteadUpdRow instead of update on tr_data2
    for each row execute for debug
    declare
      var   Err     int; //
    code
    
      if (old.c1_int  >= new.c1_int) then
    
        execute direct "update tr_data3 set c1_int = " + ITOA(old.c1_int) +
           " where c1_int = " + ITOA(new.c1_int) + ";"; //
    
        Err := ERRCODE(); //
        if (Err <  > 0) then
          goto  l_Error; //
        endif; //
    
      else
    
        execute direct "update tr_data3 set c1_int = " + ITOA(new.c1_int) +
          " where c1_int = " + ITOA(old.c1_int) + ";"; //
    
        Err := ERRCODE(); //
        if (Err <  > 0) then
          goto  l_Error; //
        endif; //
    
      endif; //
    
      execute direct "insert into tr_log ( tr_date, tr_instead, tr_upd, tr_row)
        values (sysdate, '+', '+', '+');"; //
    
      Err := ERRCODE(); //
      if (Err <  > 0) then
        goto  l_Error; //
      endif; //
    
      commit release; //
      return(true); //
    
      l_Error:
      print("tr_InsteadUpdRow : Error = " + ITOA(Err)); //
      return(false); //
    
    end;
    
  8. события: экспортирует события.

    Пример:

    create global event "SYSTEM"."EVENT_1" as time current;
  9. последовательности: экспортирует последовательности.

    Пример:

    create public sequence "SEQUENCE1" start with 1 increment by 2 maxvalue 10 minvalue 1;
  10. данные таблиц: настройки, регулирующие экспорт данных таблиц, представлены в поле Данные таблиц и позволяют:

    • загружать NCHAR как HEX;

    • включать названия столбцов;

    • определять тип команды при экспорте BLOB-данных (раскрывающийся список поля Загрузка БЛОБ);

    • определить размер порции BLOB-данных в байтах (выставляется вручную в поле Размер порции БЛОБ-данных (байт)).

    Пример:

    insert into "T1" values (1, 'aaaaa');
    insert into "T1" values (2, 'bbbbb');
    insert into "T1" values (3, 'ccccc');
    insert into "T1" values (4, '');