Найдите, имеет ли столбец в Oracle последовательность

Это делает задание:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    e.Cancel = true;
}

Редактирование: В ответ на беспокойство pix0rs - да Вы корректны, что Вы не будете в состоянии программно закрыть приложение. Однако можно просто удалить обработчик событий для form_closing события прежде, чем закрыть форму:

this.FormClosing -= new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
this.Close();
28
задан Jonathan Leffler 5 November 2014 в 00:34
поделиться

3 ответа

Вы правы; последовательность отделена от таблицы, и для заполнения любой таблицы можно использовать одну последовательность, а значения в столбце в некоторых таблицах могут в основном поступать из последовательности (или набора последовательностей), за исключением значений, созданных вручную.

Другими словами, не существует обязательной связи между столбцом и последовательностью - и, следовательно, нет способа обнаружить такую ​​связь из схемы.

В конечном счете, анализ будет исходный код всех приложений, которые вставляют или обновляют данные в таблице. Больше ничего не гарантируется. Вы можете уменьшить область поиска, если существует хранимая процедура, которая является единственным способом внести изменения в таблицу, или если есть триггер, который устанавливает значение, или другие подобные вещи. Но общее решение - это «не решение» «проанализировать источник».

Вы можете уменьшить область поиска, если существует хранимая процедура, которая является единственным способом внести изменения в таблицу, или если есть триггер, который устанавливает значение, или другие подобные вещи. Но общее решение - это «не решение» «проанализировать источник».

Вы можете уменьшить область поиска, если существует хранимая процедура, которая является единственным способом внести изменения в таблицу, или если есть триггер, который устанавливает значение, или другие подобные вещи. Но общее решение - это «не решение» «проанализировать источник».

21
ответ дан 28 November 2019 в 03:37
поделиться

Если последовательность используется в триггере, можно найти, какие таблицы она заполняет:

SQL> select t.table_name, d.referenced_name as sequence_name
  2  from   user_triggers t
  3         join user_dependencies d
  4         on d.name = t.trigger_name
  5  where  d.referenced_type = 'SEQUENCE'
  6  and    d.type = 'TRIGGER'
  7  /

TABLE_NAME                     SEQUENCE_NAME
------------------------------ ------------------------------
EMP                            EMPNO_SEQ

SQL>

Вы можете изменять этот запрос, чтобы найти хранимые процедуры и т. Д., Которые используют последовательность.

12
ответ дан 28 November 2019 в 03:37
поделиться

Нет прямых связей метаданных между последовательностями Oracle и каким-либо использованием в базе данных. Вы можете сделать разумное предположение, связаны ли значения столбца с последовательностью, запросив метаданные USER_SEQUENCES и сравнив столбец LAST_NUMBER с данными для столбца.

2
ответ дан 28 November 2019 в 03:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: