2014-02-10 85 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

需要更多的幫助,或者你解決你的問題? –