SQL general: Changes to error messages for subqueries¶
子查询的错误消息表现如下:
- 变更前:
当子查询返回错误时,错误消息不包含有关 SQL 代码或对象的特定信息。
- 变更后:
当某些子查询返回错误时,错误消息包含特定信息,例如以下详细信息:
子查询中不受支持的代码所在的行号和位置。
包含不受支持子查询的对象的名称(例如视图或函数)。当对象嵌套时,返回最外层对象的名称。例如,如果包含不受支持子查询的视图嵌套在安全视图中,则错误消息会显示该安全视图的名称。
包含不受支持子查询的对象类型的名称,例如掩码策略。
与子查询相关的错误代码没有变化。
备注
此行为变更不适用于横向联接或用户定义表函数 (UDTFs) 中的子查询。
示例¶
以下示例显示了子查询错误消息的变更。
创建三个表并向其中每个表插入数据:
这些表用于以下示例:
不支持的子查询¶
运行返回错误的不受支持的子查询:
此查询返回错误,因为相关列 a 位于左联接的 ON 子句中。
在行为变更之前,将返回以下错误:
行为变更后,将返回以下错误:
具有不受支持子查询的安全视图¶
使用不受支持的子查询创建安全视图,然后查询该视图:
在行为变更之前,将返回以下错误:
行为变更后,将返回以下错误:
具有不受支持子查询的掩码策略¶
使用不受支持的子查询创建掩码策略,更改表以应用该掩码策略,然后查询表:
在行为变更之前,将返回以下错误:
行为变更后,将返回以下错误:
参考:2140