TABLE_OR_VIEW_NOT_FOUND錯誤類

SQLSTATE: 42 p01

表或視圖< relationName >不能被發現。的拚寫和正確性驗證模式和目錄。

如果你沒有資格名稱模式,驗證current_schema()輸出,或與正確的模式限定名稱和目錄。

容忍錯誤滴水使用視圖上如果存在或刪除表的存在。

參數

  • relationName:指定名稱的關係(表或視圖),不能被發現。

解釋

保存表和視圖包含三名部分:<目錄>。<模式>。<關係>。如果你不指定名稱的所有三個部分,這是隱式地使用當前目錄或當前模式完成。這是類似於你的工作目錄文件係統如何影響哪些文件可以看到,除非你完全指定路徑。

臨時視圖或公共表表達式(CTE)隻存在在會話或查詢和絕不是合格的。

最常見的原因沒有找到一個表或視圖:

  • 根本不存在的對象。

  • 對象名稱、模式或目錄是拚寫錯誤。

  • 對象不是位於當前模式。

  • 用戶沒有訪問對象,因此看不見它。

緩解

錯誤的減排取決於原因:

  • 你拚寫的表或視圖、模式或目錄名稱不正確嗎?

    正確的拚寫。

  • 你沒有完全限定的名稱和結果的值current_schema ()”不匹配的限定名稱表或視圖?

    明確的資格relationName模式和目錄,或發出“使用模式”命令來設置所需的隱式模式。

  • 你引用一個臨時觀點,但在之前,過期,或不同的會話嗎?

    重新創建臨時視圖使用“創建臨時查看< relationName >…”,或切換到使用一個永久的視圖。

  • 你引用一個公共表表達式(CTE),但它的範圍?

    CTE的定義移動到最外層查詢。這是聲明的開始,所以在聲明中到處都是可見的。

  • 你想發出一個DDL語句,如“刪除表”以防對象存在嗎?

    問題聲明使用如果存在條款,如:“DROP TABLE < relationName >如果存在”

  • 你知道對象存在,但你不能看到它嗎“顯示表”嗎?

    聯係管理員獲得訪問表。這可能需要包括訪問模式和目錄。

  • 目前還不清楚為什麼你不能解決表或視圖?

    表和視圖的決議名稱解析的詳細描述。

例子

——表位於othercat.someschema>選擇(*)t;(TABLE_OR_VIEW_NOT_FOUND]視圖t不能發現>current_schema();默認的——改變當前的模式>使用模式othercatsomeschema;>選擇(*)T;1——或者資格表>選擇(*)othercatsomeschemat;1——CTE引用錯誤的範圍:>選擇(1)(v(c1)作為((1))(2))作為t(c1),v;(TABLE_OR_VIEW_NOT_FOUND]視圖v不能發現——移動CTE頂級>v(c1)作為((1))選擇(1)(2)作為t(c1),v;1——刪除一個非現有的視圖>下降視圖v;(TABLE_OR_VIEW_NOT_FOUND]視圖v不能發現>下降視圖如果存在v;