TABLE_OR_VIEW_NOT_FOUND错误类
表或视图< relationName >
不能被发现。的拼写和正确性验证模式和目录。
如果你没有资格名称模式,验证current_schema()输出,或与正确的模式限定名称和目录。
容忍错误滴水使用视图上如果存在或删除表的存在。
解释
保存表和视图包含三名部分:<目录>。<模式>。<关系>
。如果你不指定名称的所有三个部分,这是隐式地使用当前目录或当前模式完成。这是类似于你的工作目录文件系统如何影响哪些文件可以看到,除非你完全指定路径。
临时视图或公共表表达式(CTE)只存在在会话或查询和绝不是合格的。
最常见的原因没有找到一个表或视图:
根本不存在的对象。
对象名称、模式或目录是拼写错误。
对象不是位于当前模式。
用户没有访问对象,因此看不见它。
缓解
错误的减排取决于原因:
你拼写的表或视图、模式或目录名称不正确吗?
正确的拼写。
你没有完全限定的名称和结果的值current_schema ()”不匹配的限定名称表或视图?
明确的资格
relationName
模式和目录,或发出“使用模式”命令来设置所需的隐式模式。你引用一个临时观点,但在之前,过期,或不同的会话吗?
重新创建临时视图使用“创建临时查看< relationName >…”,或切换到使用一个永久的视图。
你引用一个公共表表达式(CTE),但它的范围?
CTE的定义移动到最外层查询。这是声明的开始,所以在声明中到处都是可见的。
你想发出一个DDL语句,如“删除表”以防对象存在吗?
问题声明使用
如果存在
条款,如:“DROP TABLE < relationName >如果存在”。你知道对象存在,但你不能看到它吗“显示表”吗?
联系管理员获得访问表。这可能需要包括访问模式和目录。
目前还不清楚为什么你不能解决表或视图?
指表和视图的决议名称解析的详细描述。
例子
——表位于othercat.someschema>选择数(*)从t;(TABLE_OR_VIEW_NOT_FOUND]的表或视图”t”不能是发现。>值current_schema();默认的——改变当前的模式>使用模式othercat。someschema;>选择数(*)从T;1——或者资格表>选择数(*)从othercat。someschema。t;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;