top of page
CerebroSQL

Редактор SQL [PL/SQL] для СУБД Oracle

Информация на странице устарела. документация переносится на форум

Редактор SQL/PLSQL для СУБД Oracle позволяет быстро и удобно работать с базами данных, администрировать и мониторить работу. Редактор поддерживает работу с версиями сервера Oracle 8.0.3 и старше

Для работы с СУБД Oracle установка дополнительного ПО не требуется.

Все необходимые библиотеки идут в комплекте

По умолчанию используется библиотека версии 11G



Не нашли нужных функций? Пишите в комментариях на форуме и мы добавим нужный функционал



 

Меню

Подключение к СУБД Oracle

Подключение к СУБД Oracle

1. Выбрать ранее сохраненное соединение из выпадающего списка "Connection control"

2. Выполнив команду connect ... в редакторе запросов.

Структура команды: connect <username>/<Password>@<TNSALIAS>

Пример: connect sys/oracle@tmpdb

p.s.: указание режима as sysdba не требуется, программа разбирает команду на части и проверяет введенный параметры

3. В редакторе соединения листа с БД

Структура листа

Структура листа

Менеджер соединений

Менеджер соединений

Соединения создаются в едином менеджере соединений, подробнее

Load db report

select instance_name,
      host_name,
      version,
      startup_time,
      status,
      archiver
 from v$instance;

select name,
      created,
      log_mode,
      open_mode,
      database_role,
      SWITCHOVER_STATUS,
      PLATFORM_NAME
 from v$database;

select count(*) "Count" from V$TABLESPACE;

select count(*) "Count",
      round(sum(bytes/1024/1024/1024),2)||' GB' "SizeFile"
 from DBA_DATA_FILES;

select count(*) "Count" from ALL_USERS;

select count(distinct(l.group#)) "Count",
      round(l.bytes/1024/1024) "MB",
      count(lf.GROUP#)/count(distinct(l.group#)) "File"
 from V$LOG l,
      V$LOGFILE lf
where l.GROUP#=lf.GROUP#
group by bytes;

select name, round(value/1024/1024,2)|| ' MB' "MB" from V$SGA;

select l.RESOURCE_NAME, l.CURRENT_UTILIZATION, l.MAX_UTILIZATION, l.LIMIT_VALUE
 from V$RESOURCE_LIMIT  l where l.LIMIT_VALUE <>' UNLIMITED' and l.LIMIT_VALUE<>'         0' ;

select ad.status,
      ad.target,
      ad.schedule,
      ads.destination,
      ads.RECOVERY_MODE,
      ads.DATABASE_MODE,
      ad.LOG_SEQUENCE,
      ads.ARCHIVED_SEQ#,
      ads.APPLIED_SEQ#,
      ad.fail_sequence,
      ad.error
 from V$ARCHIVE_DEST ad, V$ARCHIVE_DEST_STATUS ads
where ad.target='STANDBY'
  and ad.DEST_NAME=ads.DEST_NAME

Connection manager

Дерево объектов

Дерево объектов
Tree view for Oracle object

Управление соединением листа

Текущая схема

Схема поиска объектов

Дерево объектов

Настройки листа

Команды на листе

Connection control

Список соединений сохраненных в программе. При выборе соединения происходит подключение к БД

Кнопка "Show connection mabager" - отобразить/скрыть менеджер соединения

Кнопка "Disconnect current list" - Разорвать соединение с БД текущего листа 

Current schema

Схема по умолчанию для поиска объектов. Равна имени пользователя под которым осуществлено подключение к БД.

При выборе другой схемы выполняется попытка выполнить команду:

alter session set current_schema = ....;

Schema name

Схема (пользователь) в которой осуществляется поиск объектов при работе с деревом объектов (ветка SCHEMA)

The object tree

Дерево объектов. Структурно состоит из 2 корневых узлов:

SCHEMA - объекты пользователя, таблицы, представления, .....

PUBLIC - "общие объекты"  

SCHEMA

"SCHEMA"

Cluster

Узел "CLUSTER"

Кластер - это объект схемы, который содержит данные из одной или нескольких таблиц, каждая из которых имеет один или несколько общих столбцов. Oracle хранит вместе все строки из всех таблиц с одним и тем же ключом кластера.

CerebroSQL - schema - cluster

Меню папки "CLUSTER"

  • Generate create command for all objects - сформировать код создания всех объектов

  • Generate code for all objects - сформировать код создания всех объектов, но так же вывести команды формирования и количество объектов

Меню дочерних узлов

  • View - сформировать код создания выбранного объекта, вывести описание объекта из системного каталога

select distinct(object_name) "object_name", 
       status 
  from $$VIEWTYPE_objects 
where object_type = $$OBJECT_TYPE 
   and OWNER=$$OWNER 
order by object_name

database link

Узел "DATABASE LINK"

Список соединений к другим базам данных в выбранной схеме

CerebroSQL - schema - database link

Меню папки "DATABASE LINK"

  • Command create link - вывести в окне редактора шаблон кода для создания линка

CREATE DATABASE LINK "Link name"
   CONNECT TO [User name]
   IDENTIFIED BY [User password]
   USING '[tnsalias or description]'

Меню дочерних узлов

  • Testing - проверить соединение. 

фактически выполняется запрос вида:

select 'x' "x" from dual@<dblink name>

  • View - сформировать код создания выбранного объекта, вывести описание объекта из системного каталога

directory

Узел "DIRECTORY"

Список "директорий" созданных в выбранной схеме. Директория создается командой create directory ... 

CerebroSQL - schema - directory

select dd.OWNER||'.'||dd.DIRECTORY_NAME "Name",
      dd.DIRECTORY_PATH
 from DBA_DIRECTORIES dd
where owner=$$SCHEMA_NAME
order by dd.OWNER, dd.DIRECTORY_NAME  

Меню

  • Drop (execute) - удалить директорию. Операция требует подтверждения

 

Редактор директорий  

Вызывается или из меню ветки "DIRECTORY

  • Create

CerebroSQL - Oracle directory editor

 

Создание директории

  • Ввести в поле "Name directory" название новой директории

  • В поле "Path" ввести путь к директории на сервере с СУБД

  • Нажать кнопку "Create directory"

Изменение привилегий на директорию

  • В списке пользователей "List user" выбрать пользователей для которых необходимо выдать права

  • В блоке "Right"  установить чеки на нужных правах

  • Нажать кнопку "Apply

CerebroSQL - Oracle directory editor right

Узел "FUNCTION"

function

Список функций в выбранной схеме 

CerebroSQL - schema - function

select distinct(object_name) "object_name",
      status
 from $$VIEWTYPE_objects
where object_type = $$OBJECT_TYPE
  and OWNER=$$OWNER 
order by object_name 

Меню

  • Get DDL - сформировать код создания функции и вывести в окне редактора

select dbms_metadata.get_ddl('FUNCTION',$$FUNCTION_NAME,$$FUNCTION_OWNER) 
  as ddl from dual 

  • Show errors - отобразить список ошибок в функции при их наличии (данные выводятся в сетке). Функции с ошибками отображаются специальным значком

select line||'->'||position||' ('||text||')' "Error"
 from ALL_ERRORS
where owner= $$OWNER
  and type='FUNCTION'
  and name=$$FUNCTION_NAME
order by sequence

  • Compile - перекомпилировать функцию

ALTER FUNCTION $$OWNER.$$FUNCTION_NAME COMPILE

Узел "INDEX"

index

Список индексов в выбранной схеме

CerebroSQL - schema - index

select distinct(object_name) "object_name",
      status
 from $$VIEWTYPE_objects
where object_type = $$OBJECT_TYPE
  and OWNER=$$OWNER 
order by object_name 

Дочерний узел "Column"

Список колонок по которым построен индекс

select column_name
 from $$VIEWTYPE_IND_COLUMNS
where  index_name=$$INDEX_NAME
  and index_owner=$$OWNER
order by column_name

Дочерний узел "Table"

Таблица по колонкам которой построен индекс

select distinct(table_name) "Table_name"
 from $$VIEWTYPE_INDEXES
where index_name=$$INDEX_NAME
  and owner=$$OWNER

Дочерний узел "Expression"

Список выражений функциональных индексов

select column_expression
 from $$VIEWTYPE_IND_EXPRESSIONS
where index_name=$$INDEX_NAME
  and index_owner=$$OWNER

Меню

  • Get DDL - сформировать код создания индекса и вывести в окне редактора

index partition

Узел "INDEX PARTITION"

Список партицированных индексов в выбранной схеме

CerebroSQL - schema - index partition

Меню аналогично меню узла "INDEX"

Дочерние узлы аналогичны дочерним узлам узла "INDEX", за исключением

Дочерний узел "Partition"

Список партиций индекса

select partition_name
 from $$VIEWTYPE_IND_PARTITIONS
where index_name = $$INDEX_NAME
  and index_owner = $$OWNER 
order by partition_position desc 

table

Узел "TABLE"

Список таблиц в выбранной схеме.

CerebroSQL - schema - table list

select distinct(object_name) "object_name",
      status
 from DBA_objects
where object_type = 'TABLE'
  and OWNER=$$OWNER
order by object_name

Дочерний узел "Storage"

Размер таблицы и имя табличного пространства 

select tablespace_name,
      round(bytes/1024/1024,3) "size"
 from DBA_SEGMENTS
where segment_name = $$TABLE_NAME
  and owner=$$OWNER 

Дочерний узел "Columns"

Список колонок таблицы с типом данных

select column_name||' ('||data_type||
      (case
       data_type WHEN 'VARCHAR2'
                 THEN '('||DATA_LENGTH||')'
       end)||')' "name"
 from $$VIEWTYPE_TAB_COLUMNS
where table_name=$$TABLE_NAME
  and owner=$$OWNER
order by column_id

Дочерний узел "Index"

Список индексов построенных по колонкам таблицы

select i.index_name,
      i.INDEX_TYPE,
      i.UNIQUENESS,
      i.COMPRESSION,
      i.TABLESPACE_NAME,
      i.STATUS,
      i.NUM_ROWS,
      i.VISIBILITY
 from SYS.DBA_INDEXES i
where table_name = $$TABLE_NAME
  and owner =$$OWNER
order by index_name      

Дочерний узел "Trigger"

Список триггеров на выбранной таблице

select trigger_name
 from $$VIEWTYPE_TRIGGERS
where table_name=$$TABLE_NAME

  and table_owner=$$OWNER

Дочерний узел "Constraint"

Список ограничений на данные в колонках таблицы

select c.CONSTRAINT_NAME "name",
      c.SEARCH_CONDITION,
      c.STATUS,
      c.DEFERRABLE,
      c.DEFERRED,
      c.VALIDATED
from $$VIEWTYPE_CONSTRAINTS c
where table_name=$$TABLE_NAME

  and owner=$$OWNER  

Дочерний узел "Granted"

Права на таблицу выданные другим пользователям в БД. 

select p.GRANTEE,
      p.GRANTOR,
      p.PRIVILEGE,
      p.GRANTABLE
 FROM $$VIEWTYPE_TAB_PRIVS p
where p.owner=$$OWNER
  and p.table_name = $$TABLE_NAME
order by p.GRANTEE, p.PRIVILEGE 

 

Дочерний узел "Statistics"

Статистика по выбранной таблице

select * from DBA_TAB_STATISTICS
 where table_name =$$TABLE_NAME
   and owner = $$OWNER

Меню узла "TABLE"

  • Get DDL - сформировать код создания таблицы и добавить его в окно редактора

select dbms_metadata.get_ddl('TABLE',$$TABLE_NAME,$$OWNER) as ddl
  from dual

  • Table view - просмотр подробной информации о таблице

Страница "General" - общая информация

Oracle table info - general

select t.OWNER, t.TABLE_NAME, t.TABLESPACE_NAME, t.STATUS,
      t.PCT_FREE, t.PCT_USED, t.INI_TRANS, t.MAX_TRANS,
      t.INITIAL_EXTENT, t.NEXT_EXTENT, t.FREELISTS,
      t.LOGGING, t.PARTITIONED, t.LAST_ANALYZED, t.MONITORING, tc.COMMENTS
 from $$VIEWTYPE_TABLES t, $$VIEWTYPE_TAB_COMMENTS tc
where t.table_name=$$TABLE_NAME
  and t.owner=$$OWNER
  and tc.OWNER=t.OWNER
  and tc.TABLE_NAME=t.TABLE_NAME

select ts.NUM_ROWS, ts.BLOCKS, ts.AVG_ROW_LEN,
      ts.SAMPLE_SIZE, ts.LAST_ANALYZED
 from $$VIEWTYPE_TAB_STATISTICS ts
where ts.OWNER=$$OWNER
  and ts.TABLE_NAME=$$TABLE_NAME

select tm.INSERTS, tm.UPDATES, tm.DELETES, tm.TIMESTAMP, tm.TRUNCATED
 from $$VIEWTYPE_TAB_MODIFICATIONS tm
where tm.TABLE_OWNER=$$OWNER
  and tm.TABLE_NAME=$$TABLE_NAME

select round(sum(bytes)/1024/1024,2) "MBSize"
 from $$VIEWTYPE_SEGMENTS
where segment_name = $$TABLE_NAME and owner=$$OWNER

select round(sum(bytes)/1024/1024,2) "MBSize", count(*) "CountIND"
 from $$VIEWTYPE_SEGMENTS
where segment_name in (select index_name
                         from $$VIEWTYPE_INDEXES
                        where table_name = $$TABLE_NAME
                          and table_owner = 'SYSTEM')
  and Owner=$$OWNER

Страница "Column" - информация о колонках таблицы

CerebroSQL - Oracle table view - columns

 

Страница "Constraint"

Подробное описание ограничений на данные созданных на солонках таблицы

CerebroSQL - Oracle table view - Constraint

select ac.CONSTRAINT_NAME "Name"
 from ALL_CONSTRAINTS ac
where ac.table_name=$$TABLE_NAME
  and ac.OWNER= $$OWNER                
order by CONSTRAINT_NAME

 

select ac.OWNER,
      ac.TABLE_NAME,
      ac.CONSTRAINT_NAME,
      decode(ac.CONSTRAINT_TYPE,'C','Check constraint',
                                 'P','Primary key',
                                 'U','Unique key',
                                 'R','Referential',
                                 'V','Check option',
                                 'O','Read only') 
            "CONSTRAINT_TYPE",
      ac.STATUS,
      nvl(ac.BAD,'-') "BAD",
      nvl(ac.RELY,'-') "RELY",
      ac.LAST_CHANGE,
      nvl(ac.INDEX_OWNER,'-') "INDEX_OWNER",
      nvl(ac.INDEX_NAME,'-') "INDEX_NAME",
      nvl(ac.INVALID,'-') "INVALID",
      nvl(ac.VIEW_RELATED,'-') "VIEW_RELATED",
      nvl(ac.R_OWNER,'-') "R_OWNER",
      nvl(ac.R_CONSTRAINT_NAME,'-') "R_CONSTRAINT_NAME",
      nvl(ac.DELETE_RULE,'-') "DELETE_RULE",
      ac.DEFERRABLE,
      ac.DEFERRED,
      ac.VALIDATED,
      ac.GENERATED,
      ac.SEARCH_CONDITION
 from DBA_CONSTRAINTS ac
where ac.CONSTRAINT_NAME=$$CONSTRAINT_NAME
  and ac.TABLE_NAME=$$TABLE_NAME
  and ac.OWNER=$$OWNER

Страница "Index"

Подробная информация о индексах таблицы

CerebroSQL - Oracle table view - index

select Index_name
 from ALL_INDEXES
where table_name=$$TABLE_NAME
  and table_owner=$$OWNER

select i.INDEX_TYPE,
       i.TABLE_OWNER||'.'||i.TABLE_NAME "TABLE",
       i.UNIQUENESS,
       i.COMPRESSION,
       i.TABLESPACE_NAME,
       i.LOGGING,
       i.STATUS,
       i.NUM_ROWS,
       i.SAMPLE_SIZE,
       i.LAST_ANALYZED,
       i.PARTITIONED,
       i.BUFFER_POOL
  from DBA_INDEXES i
 where i.OWNER=$$OWNER
   and i.INDEX_NAME=$$INDEX_NAME
   and i.TABLE_NAME=$$TABLE_NAME

select ic.COLUMN_NAME,
      ic.COLUMN_POSITION,
      ic.COLUMN_LENGTH,
      ic.CHAR_LENGTH,
      ic.DESCEND
 from DBA_IND_COLUMNS ic
where ic.INDEX_OWNER=$$OWNER
  and ic.INDEX_NAME=$$INDEX_NAME
  and ic.TABLE_NAME=$$TABLE_NAME 

Страница "Trigger"

Подробная информация по триггерам таблицы

CerebroSQL - Oacle table view - trigger

select tr.TRIGGER_NAME,
      tr.TRIGGER_TYPE,
      tr.TRIGGERING_EVENT,
      tr.TRIGGER_BODY
 from $$VIEWTYPE_TRIGGERS tr
where tr.TABLE_OWNER=$$OWNER
  and tr.TABLE_NAME=$$TABLE_NAME
  and tr.TRIGGER_NAME=$$TRIGGER_NAME 

  • Show data - извлечь данные из таблицы

  • Column -> Info - список колонок таблицы с типом данных и комментарием. Данные отображаются в сетке 

  • Column -> Add - добавит в окно редактора пример команды для добавления колонки в таблицу

Пример

# alter table table_name add (
#  column1_name column1_datatype column1_constraint,
#  column2_name column2_datatype column2_constraint,
#  column3_name column3_datatype column3_constraint)

alter table SYSTEM.TESTTB add column  (... ... ...)

  • Column -> Modify - добавит в окно редактора пример команды для изменения колонки

Пример

# alter table table_name modify (
#  column1_name  column1_datatype,
#  column2_name  column2_datatype,
#  column3_name  column3_datatype)

alter table SYSTEM.TBL modify  (... ...)

  • Column -> Drop - добавит в окно редактора пример команды для удаления колонки из таблицы

alter table SYSTEM.TBL drop column  ...

  • POOL -> DEFAULT - переместить таблицу в пул DEFAULT. Команда выполняется

alter table $$OWNER.$$TABLE_NAME storage ( buffer_pool keep)

  • POOL -> KEEP - переместить таблицу в пул KEEP. Команда выполняется

alter table $$OWNER.$$TABLE_NAME storage ( buffer_pool keep)

  • POOL -> RECYCLE - переместить таблицу в пул RECYCLE. Команда выполняется

alter table $$OWNER.$$TABLE_NAME storage ( buffer_pool RECYCLE)

  • Script -> Select - сформировать и добавить в редактор запросов текст запроса select с перечислением всех колонок и алиаса таблицы

  • Script -> Insert - сформировать и добавить в редактор запросов текст команды insert с перечислением всех колонок

  • Script -> Delete - сформировать и добавить в редактор запросов текст команды delect всех данных из таблицы

  • Script -> Truncate - сформировать и добавить в редактор запросов текст команды truncate  таблицы

  • Script -> Analyze- сформировать и добавить в редактор запросов текст команды на обновление статистики по таблице 

  • Script -> Drop - сформировать и добавить в редактор запросов текст команды удаления таблицы

  • Script -> Rename- сформировать и добавить в редактор запросов текст команды переименования таблицы

Table view
VIEW

Узел "VIEW"

Список представлений в выбранной схеме

CerebroSQL - schema - view

Дочерний узел "Column"

Список колонок представления

select column_name,
      data_type
 from DBA_TAB_COLUMNS
where table_name = $$TABLE_NAME
  and owner = $$OWNER
order by column_id

public

"PUBLIC"

parameter

Узел "PARAMETER"

Список параметров БД Oracle и его значение

CerebroSQL - public - parameter

select name, nvl(value, '<Null>') "value" 
  from V$PARAMETER order by name 

public directory

Узел "DIRECTORY"

Список директорий во всех схемах

CerebroSQL - public - directory

select dd.OWNER||'.'||dd.DIRECTORY_NAME "Name",
      dd.DIRECTORY_PATH
 from DBA_DIRECTORIES dd 
order by dd.OWNER, dd.DIRECTORY_NAME

Меню

  • Edit rights - запустить редактор прав для директории

  • Drop (execute) - удалить директорию

invalid

Узел "INVALID"

Список объектов в статусе invalid сгруппированный по схемам и типам объектов

CerebroSQL - public - invalid

select OWNER,
      count(*) "Count"
 from $$VIEWTYPE_objects
where status='INVALID'
group by owner order by OWNER

Меню

  • Get source - сформировать код создания объекта и вывести в окне редактора

  • Compile - перекомпилировать объект

  • Drop (execute) - удалить объект

  • Error list - вывести в сетке список всех ошибок в объекте БД

select *
 from ALL_ERRORS ae
where ae.OWNER=$$OWNER
  and ae.TYPE=$$OBJECT_TYPE
  and ae.NAME=$$OBJECT_NAME

Узел "RECYCLEBIN"

recyclebin

Список таблиц в корзине БД Oracle сгруппированные по схемам

CerebroSQL - public - recyclebin

select distinct(owner) "NAME",
      round(sum(space)/1024/1024,2) "MB",
      sum(space) "sbytes"
 from DBA_recyclebin 
group by owner order by 2 desc

Меню

  • To create a table from - добавить в окно редактора код команды create новой таблицы на основе таблицы из корзины

Пример

CREATE TABLE <TABLE NAME> AS SELECT * FROM TESTUSER."BIN$KVmaWfsMSteelsO9Quo3Hw==$0"

  • Data - извлечь данные из таблицы в корзине

Узел "TABLESPACE"

tablespace

Список табличных пространств созданных в БД Oracle

CerebroSQL - public - oracle tablespace

select tablespace_name||' ('||
         substr(contents,1,1)||')' 
           "Tablesp",
      status,
      logging,
      tablespace_name
 from DBA_TABLESPACES
order by tablespace_name 

Дочерний узел "DATAFILE"

Список файлов данных на дисках с текущим размером

select DDF.FILE_NAME||':=>'||
         round(ddf.bytes/1024/1024/1024,2)||
            ' GB' "File",
      online_status,
      (maxbytes-bytes)/1024 "free"
 from DBA_DATA_FILES ddf
where ddf.tablespace_name=$$TABLESPACE_NAME

 

Дочерний узел "OCCUPANTS"

Выводится только для пространства SYSAUX.

SELECT schema_name||': '|| occupant_name ||' -> '||space_usage_kbytes||' KB' "Occup"
  FROM v$sysaux_occupants
ORDER BY space_usage_kbytes desc, schema_name,occupant_name

Дочерний узел "INFOTS"

Подробная информация о табличном пространстве

select tablespace_name,
      status,
      logging,
      force_logging,
      extent_management,
      segment_space_management,
      bigfile,
      retention
 from DBA_TABLESPACES
where tablespace_name=$$TABLESPACE_NAME

Дочерний узел "OBJSIZE"

Список всех объектов в табличном пространстве с их размером отсортированный по размеру

select segment_name,
      segment_type,
      OWNER,
      round((sum(bytes)/1024/1024),2) "ObjSize"
 from DBA_SEGMENTS
where tablespace_name=$$TABLESPACE_NAME
group by  segment_name, segment_type, owner
order by 4 desc

Меню

  • Show storage manager - запустить storage manager для данной БД

  • REDO

    Узел "REDO"

    Информация по группам журналом redo

    CerebroSQL - public - redo

    select l.group#,
          round((l.bytes)/1024/1024/1024,2) "Size",
          l.status,
          l.first_time,
          f.MEMBER,
          l.ARCHIVED,
          l.SEQUENCE#
     from V$LOG l, v$logfile f
    where l.GROUP# = f.GROUP#
    order by 1

    Узел "NOLOGGING"

    NOLOGGING

    Список таблиц в БД операции в которых не логируются в журналах предварительной записи REDO

    CerebroSQL - public - nologging

    select owner,
          count(*) "CountNo"
     from DBA_TABLES
    where logging='NO'
    group by owner order by 2 desc

    select t.table_name,
          t.TABLESPACE_NAME,
          t.STATUS,
          t.LOGGING
     from DBA_TABLES t
    where logging='NO'
      and owner = $$OWNER
    order by table_name 

    NOANALYZE

    Узел "NOANALYZE"

    Список таблиц у которых отсутствует статистика

    CerebroSQL - public - oracle noanalyze table

    select distinct(owner) "OWNER",
          count(*) "Count"
     from DBA_TABLES
    where last_analyzed is null
    group by owner
    order by 2 desc

    select table_name
     from DBA_TABLES
    where last_analyzed is null
      and owner=$$OWNER
    order by table_name

    USER

    Узел "USER"

    Список пользователей в БД Oracle

    CerebroSQL - public - users

    select username,
          account_status
     from dba_users
    order by username

    Меню

    • Lock - заблокировать пользователя

    alter user $$USER_NAME account lock

    • Unlock - разблокировать пользователя

    alter user $$USER_NAME account unlock

    • Create SQL - сформировать набор команд для создания пользователя и выдачи привилегий

    SELECT dbms_metadata.get_ddl('USER',$$USERNAME) "DDL" FROM dual
    SELECT DBMS_METADATA.GET_GRANTED_DDL('ROLE_GRANT',$$USERNAME "DDL" from dual
    SELECT DBMS_METADATA.GET_GRANTED_DDL('OBJECT_GRANT',$$USERNAME) "DDL" from dual
    SELECT DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT',$$USERNAME) "DDL" from dual
    SELECT DBMS_METADATA.GET_GRANTED_DDL('TABLESPACE_QUOTA',$$USERNAME) "DDL" from dual
    SELECT DBMS_METADATA.GET_GRANTED_DDL('DEFAULT_ROLE',$$USERNAME) "DDL" from dual 

    • Change -> Password - сформировать и добавить в окно редактора команду для смены пароля

    • Change -> Tablespace  - сформировать и добавить в окно редактора команду для смены табличного пространства по умолчанию

    • Change -> Temp  - сформировать и добавить в окно редактора команду для смены временного табличного пространства по умолчанию

    • Change -> Rename [sys only]- сформировать и добавить в окно редактора команды для переименования пользователя в БД. 

    ВАЖНО: Операция не документированная, выполнять строго на тестовых базах!!!

    Операция не документированная
    Выполнять строго на тестовых базах 
                               
    update sys.user$ set name = upper('<New name>') where user = '$$USER'
    alter system flush shared_pool  
    после выполнения данных команд, перезапустить экземпляр
    и перекомпелировать все объекты схемы, инвалидные исправить

    • Create code object - сформировать код создания всех объектов в схеме. Код выводится в отдельном окне.

    Выполнение задачи идет в основном потоке, может быть длительным.

    Oracle view DDL schema

     

    Tree object - дерево объектов. Кликабельно, переход к коду объекта в списке "DDL Schema"

    Save - сохранить весь код в файл на диске, файл сохраняется в директории .\tmp\ddl\

    • Edit - редактор пользователя и просмотр подробных свойств

    Редактор пользователей

    Oracle edit user - alter user

     

    Вкладка "OBJECT PRIVILEGE"

    Права на объекты у пользователя

    Oracle edit user - object privilege

    select p.OWNER, 
           p.TABLE_NAME, 
           p.PRIVILEGE, 
           p.GRANTABLE
     from sys.dba_tab_privs p
    where p.grantee = $$USERNAME
    order by  p.table_name, 
              p.PRIVILEGE 

    Вкладка "ROLE PRIVILEGE"

    Список ролей БД выданный пользователю

    Oracle edit user - role privilege

    select granted_role, 
           admin_option, 
           default_role
     from sys.dba_role_privs
    where grantee = $$USERNAME
    order by granted_role

    Вкладка "SYSTEM PRIVILEGE"

    Список системных привилегий выданный пользователю

    Oracle edit user - system privilege

    select privilege, 
           admin_option
      from sys.dba_sys_privs
    where grantee = $$USERNAME
    order by privilege

    Вкладка "QUOTA"

    Квота пользователя на табличные пространства 

    Oracle edit user - quota

    select tq.TABLESPACE_NAME,
           case
           when tq.MAX_BYTES=-1 then 'Unlimited' 
             else to_char(round(tq.MAX_BYTES/1024/1024))
            end "Max_Bytes",
           case
           when tq.MAX_BLOCKS=-1 then 'Unlimited' 
             else to_char(tq.MAX_BLOCKS)
            end "Max_Block"            
     from DBA_TS_QUOTAS tq
    where tq.USERNAME=$$USERNAME

    Вкладка "SEGMENT"

    Данные по использованию места в табличных пространствах пользователем

    Oracle edit user - segment

    select s.TABLESPACE_NAME,
          round(sum(s.BYTES/1024/1024/1024), 3) "Size"
     from DBA_SEGMENTS s
    where s.OWNER=$$USERNAME
    group by TABLESPACE_NAME order by 2 desc 

    Вкладка "OBJECT SIZE"

    Список объектов в БД пользователя с размером

    Oracle edit user - object size

    select s.SEGMENT_NAME,
          s.TABLESPACE_NAME,
          round(sum(s.BYTES/1024/1024/1024), 3) "Size"
     from DBA_SEGMENTS s where s.OWNER=$$USERNAME
    group by TABLESPACE_NAME, s.SEGMENT_NAME
    order by 3 desc

    Страница "OBJECT MAPPING"

    Группировка объектов по типам, с информацией по объектам каждой группы

    Oracle edit user - object mapping

    select segment_type,
          count(*) "Count",
          tablespace_name,
          round((sum(bytes)/1024/1024)) "Size"
     from DBA_SEGMENTS
    where owner=$$OWNER
    group by segment_type, tablespace_name
    order by 2 desc

    select segment_name,
          tablespace_name,
          round(sum(bytes)/1024/1024,2) "Size",
          buffer_pool
     from dba_segments
    where owner=$$OWNER and segment_type=$$SEGMENT_TYPE
    group by segment_name,tablespace_name, buffer_pool
    order by segment_name

    user connect

    Узел "USER CONNECT"

    Информация по сессиям в БД сгруппированная по схемам

    CerebroSQL - public - user connect

    select username||' ('||count(*)||')' "username"
     from v$session
    where username is not null
    group by username
    order by username

     

    select s.SID,
          s.SERIAL#,
          s.USERNAME,
          s.STATUS,
          s.SERVER,
          s.SCHEMA#,
          s.OSUSER,
          s.MACHINE,
          s.PORT,
          s.TERMINAL,
          s.PROGRAM,
          s.SQL_ID
     from v$session s
    where username = $$OWNER
    order by sid

     

    Меню

    Пункты меню аналогичны вкладкам "Session manager"

    Узел "PROFILE"

    profile

    Список профилей в БД Oracle

    CerebroSQL - public - profile

    select username||' ('||count(*)||')' "username"
     from v$session
    where username is not null
    group by username
    order by username

     

    select s.SID,
          s.SERIAL#,
          s.USERNAME,
          s.STATUS,
          s.SERVER,
          s.SCHEMA#,
          s.OSUSER,
          s.MACHINE,
          s.PORT,
          s.TERMINAL,
          s.PROGRAM,
          s.SQL_ID
     from v$session s
    where username = $$OWNER
    order by sid 

     

    Меню

    • View or edit - редактор профиля

    Oracle profile editor

     

    Редактор профиля служит для просмотра списка пользователей у которых применен профиль и внесения в него изменений.

    Узел "SESSION"

    session

    Запустить менеджер сессий для текущей базы данных.

    top sql

    Узел "TOP SQL"

    Запустить менеджер запросов вносящих максимальный вклад в нагрузку на базу данных 

    role

    Узел "ROLE"

    Список ролей в БД

    CerebroSQL - public - role

    select r.ROLE||' ['||(select count(*)
                           from DBA_ROLE_PRIVS rp
                          where rp.GRANTED_ROLE =r.ROLE)||']' "ROLE"
     from DBA_ROLES r
    order by r.ROLE

    select distinct(grantee) "grantee"
     from sys.dba_role_privs
    where granted_role = $$ROLENAME
    order by grantee

    restore point

    Узел "RESTORE POINT"

    Список точек отката созданных в БД

    CerebroSQL - public - restore point

    SELECT NAME,
          SCN,
          TIME,
          DATABASE_INCARNATION#,
          GUARANTEE_FLASHBACK_DATABASE,
          STORAGE_SIZE
     FROM V$RESTORE_POINT

    database link

    Узел "DATABASE LINK"

    Список соединений к другим базам данных во всех схемах 

    CerebroSQL - public - database link

    select owner||'.'||db_link "db_Link",
          username,
          host
     from DBA_DB_LINKS 
    order by owner, db_link

    настройки листа

    Настройки листа

    CerebroSQL for Oracle - list settings
    • Font size - размер шрифта визуальных элементов текущего листа 

    • Type view - тип системных представлений каталога СУБД Oracle из которых извлекаются данные для дерева объектов. В запросах $$VIEWTYPE

    • Complition load - способ загрузки данных для подсказчика кода

      • Work - в режиме реального времени

      • Manual - в ручную. Режим подходит для больших баз, когда запросы к каталогу выполняются длительное время

    • Use styler - использовать подсветку синтаксиса и ключевых слов в редакторе запросов

    • Statistics query - выводить статистику выполнения запроса. Статистика собирается дважды, до и после выполнения и выводится разница

    select st.SID,
          sn.NAME,
          st.VALUE
     from V$SESSTAT st, V$STATNAME sn
    where st.STATISTIC# = sn.STATISTIC#
     and st.SID=$$SID
     and st.VALUE<>0
    order by value desc​

    • TrimTrailingSpace - удалять пробелы в конце строки

    • AutoThemeAdapt - адаптировать цвета к теме windows

    • DelErase - заменять выделенный текст при вводе или добавлять новые символы в начале

    • HiddenCaret - скрывать положение курсора в тексте

    bottom of page