2016-12-26 74 views
0

幾年前,我的稱爲SAMPLE的Oracle錶停止接受更新或插入命令。我終於發現,如果我重命名錶,所有的都可以工作,所以它看起來SAMPLE可能是一個保護字,但我沒有在Oracle保留或保護字列表中看到它。任何關於此的燈光將不勝感激。Oracle表SAMPLE不再更新

+3

'sample'是一個關鍵字,但不保留。您可以創建一個名爲SAMPLE的表。如果沒有發佈「停止接受更新或插入命令」,則不會發布錯誤消息。什麼「停止接受......」的意思? –

+0

是的,很好,謝謝。錯誤(來自.Net)是「」動態SQL生成失敗。沒有找到基表或者找到了多個基表「實際調用是:adapter.Update(dataRows);奇怪的是這個SAMPLE表在12年內工作正常,並且今天仍然有效,但是停止適配器工作。更新調用(但可以用直接SQL填充)。我可能應該創建一個代碼片段,但是在我釋放表之前可能需要一段時間。 – beanmf

+0

這聽起來更像是一個與實際表相關的問題。你爲什麼要生成動態SQL?你需要解釋*更多*關於你在做什麼(以及爲什麼)。 – APC

回答

1

我們可以通過查詢v$reserved_words視圖中看到所有我們的Oracle版本的關鍵字:

SQL> select * from v$reserved_words rw 
    2 where rw.keyword = 'SAMPLE' 
    3/

KEYWORD       LENGTH R R R R D 
------------------------------ ---------- - - - - - 
SAMPLE         6 N N N N N 

SQL> 

這就告訴我們,「樣本」是一個關鍵字,但在任何情況下不保留。所以我們被允許創建名爲SAMPLE的對象。 Find out more