2015-09-15 2 views
0

У меня есть 2 одинаковых таблицы Oracle (Таблица 1 & Таблица2). Вставка данных в обе эти таблицы обрезается, а затем загружается. После того, как данные будут вставлены в таблицу, на ней будет применен синоним. Кроме того, таблица будет вставлена ​​для следующей загрузки обнаруживается с помощьюКак найти последний использованный стол?

SELECT OBJECT_NAME 
    INTO var1 
    FROM (SELECT RR.OBJECT_NAME, 
         RANK() OVER (ORDER BY RR.LAST_DDL_TIME ASC) RNK 
       FROM SYS.ALL_OBJECTS RR 
       WHERE RR.OBJECT_NAME IN 
           ('Table1', 'Table2')) 
    WHERE RNK = 1; 

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

+0

Но почему у вас есть две одинаковые таблицы ??? – jarlh

+0

Допустим, это требование .... :) –

+0

это очень странный дизайн ... но почему бы вам просто не написать в другую таблицу имя таблицы, которое будет использоваться следующей итерацией, вместо того, чтобы полагаться на "последнем времени ddl"? –

ответ

0

Это слишком долго для комментария.

У вас плохой дизайн приложения. Вы используете метаданные базы данных для целей, для которых они не предназначены. Если вам нужно отслеживать такие вещи, как время, когда пользователю был предоставлен доступ к таблице, вы должны явно указывать эту информацию в другой таблице, либо обертывая логику управления доступом в хранимой процедуре, либо используя триггер DDL.

Знак, что у вас есть проблема, заключается в том, что DDL_TIME не делает то, что вы хотите. Этот столбец выполняет то, что он документирует, и, по-видимому, то, что ему нужно делать в базе данных. Недостатком является ваша повторная интерпретация.

+0

Я знаю, что это плохой дизайн, но именно поэтому я прошу помочь его изменить. Ограничение заключается в том, что я не могу использовать DDL, поскольку у нас есть администраторы баз данных в нашей ассоциации, и переходить в другую команду было бы больно ... –

+0

@AayushBhatnagar Разработка PL/SQL без возможности изменять объекты схемы похожа на разработку Java без возможности изменения исходного кода. – user272735

+0

Я полностью понимаю, но, пожалуйста, помогите мне с этим .... –