2014-02-10 3 views
0

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

До сих пор я получил следующее:

WITH 
new_salary AS 
(SELECT ID,NAME,DEPT_NAME,SALARY FROM INSTRUCTOR WHERE DEPT_NAME='Comp. Sci.') 
SELECT 
    * 
FROM 
    new_salary 
WHERE 
    DEPT_NAME='Comp. Sci.'; 

Теперь вот где она заканчивается. Я хочу обновить эту временную таблицу и показать обновленную версию этой таблицы, чтобы избежать изменения фактической базы данных. Все мои попытки использовать предложение UPDATE потерпели неудачу, поэтому я немного ошеломлен:/

Эта часть, которую я сейчас пытаюсь сделать, не является частью домашней работы. Просто я не хочу снова и снова переделывать базу данных.

Как бы я это сделал?

ответ

0

Я думаю, у вас есть два варианта:

  1. You make a procedure, который первым проверяет, нуждается ли обновить таблицу. После вызова этого запроса.
  2. Вы создаете pipelined function, который выполняет проверку и возврат данных. Вы можете интегрировать это в избранных, как это (конвейерный имя функции называется pipelined_function_name):

    select * 
    from table(pipelined_function_name) 
    ; 
    
+0

Нужна помощь или вы решить проблему? –

Смежные вопросы