没有“WITH NO SCHEMA BINDING”的视图返回关系“不存在”错误

Posted

技术标签:

【中文标题】没有“WITH NO SCHEMA BINDING”的视图返回关系“不存在”错误【英文标题】:Views without "WITH NO SCHEMA BINDING" return relation "does not exist" error 【发布时间】:2019-01-30 15:14:13 【问题描述】:

我创建了一些基本视图WITH NO SCHEMA BINDING。在其中一个视图之上,我想创建一个主视图,但这迫使我在没有WITH NO SCHEMA BINDINGclause 的情况下创建它——我假设是由于对基本视图的依赖。

创建主视图后,如果我通过select * from master_view 查询它,一切正常。 但是,几个小时后查询它 - 我收到一个关系“不存在”错误.. 另一方面,从任何非主视图中选择 *(创建 WITH NO SCHEMA BINDING 永远不会失败..

知道为什么会发生这种情况,以及如何确保主视图在创建一次后永久存在?

【问题讨论】:

您是否提交了您的创建视图语句? @JonScott 否,但根据 docs.aws.amazon.com/redshift/latest/dg/r_BEGIN.html “默认情况下,单个 Amazon Redshift 操作(查询、DDL 语句、加载)会自动提交到数据库。”此外,我对使用 WITH NO SCHEMA BINDING 创建的视图没有问题 - 我也没有提交 你用什么工具来创建 master_view ,然后你从哪里测试它? @JonScott 我使用 Aqua Data Studio 处理一切,因此通过 jdbc 连接。 create view master_view as ... 所以 - 如果您创建视图,请尝试 - 完全关闭 aqua 视图 - 重新进入 - 再试一次?会发生什么 【参考方案1】:

根据https://forums.aws.amazon.com/thread.jspa?threadID=263944,它看起来像以下错误:'Invalid operation: All the relation names inside should be qualified when creating VIEW WITH NO SCHEMA ' 是由一些正在连接的表未指定表所属的架构引起的。 例如:JOIN table 应该是 JOIN schema.table

指定架构允许我在创建主视图时使用with no schema binding 并解决了我的问题

【讨论】:

以上是关于没有“WITH NO SCHEMA BINDING”的视图返回关系“不存在”错误的主要内容,如果未能解决你的问题,请参考以下文章

linux下tomcat启动没有日志,没有进程,没有报错,没有监听端口

程序崩溃, 没有任何提示!没有异常!没有任何错误日志。。。

为啥 HKSample 数组对于一个没有限制、没有谓词、没有锚点的 HKAnchoredObjectQuery 总是有 1 个值?

为啥 HKSample 数组对于一个没有限制、没有谓词、没有锚点的 HKAnchoredObjectQuery 总是有 1 个值?

Eclipse C++ 问题:没有二进制文件(但没有编译器错误),没有类(但在类层次结构中没有条目)

PLSQL提示没有登录ORA-01012:没有登录