更改开始

-20474 无法为 对象类型 类型的 对象名称 对象创建权限或掩码。 原因码:原因码

说明

CREATE PERMISSION或CREATE MASK语句无法处理。

object-name
对象的名称。
对象类型
对象的类型。
reason-code
消息或SQL代码的原因,由以下值之一表示:
1
定义引用了定义行权限或列掩码的表格。
2
定义引用了表函数或集合派生表(UNNEST)。
3
该定义引用了不安全的用户定义函数。
4
定义参考以下功能之一:
  • 一个定义为不确定的函数
  • 定义为具有外部动作的功能
  • 使用“修改SQL数据”选项定义的功能
5
该定义参考了OLAP规范。
6
定义引用了XMLEXISTS谓词。
7
定义引用了ROW CHANGE表达式。
8
定义引用了序列引用。
9
该定义引用了已创建或已声明的临时表。
10
定义引用了为XML列隐式创建的表格。
11
定义在SELECT子句中引用了 *name.*
12
定义引用了使用 FIELDPROC 定义的列。
13
该定义引用了需要多种编码方案处理的语言元素。
14
该定义引用了包含破折号(-)的普通SQL标识符。
16
行权限或列掩码的正文包含一个句点说明。
17
发生了下列情况之一:
  • 尝试在以下表格类型之一上创建行权限或列掩码:
    • 用句号定义的表格
    • 历史表
    • 启用存档功能的表格
    • 档案表
    • 只含加速器的表格
    您无法在这些类型的表上创建行权限或列掩码。
  • 尝试为ACTIVATE ROW ACCESS CONTROL规范隐式创建默认行权限。
18
该定义引用了EBCDIC表中的 Db2 11 Unicode列。
19
在EBCDIC表中,无法为 Db2 11 Unicode列定义列掩码。
32
定义掩码的列是通过字段程序(FIELDPROC)完成的。
33
返回表达式的数据类型与定义列掩码的列的数据类型不同。
34
返回表达式的长度属性与定义列掩码的列的长度属性不同。
35
返回表达式的空属性与定义列掩码的列的空属性不同。
36
返回表达式的子类型、编码方案或CCSID与定义列掩码的列的相应属性不同。
37
返回表达式的属性与定义列掩码的列的相应属性不同。 该属性不属于原因代码33-36中描述的属性。
39
定义参考了仅加速器表。
51
无法为具有安全标号列的表创建行许可权。
52
行许可权无法引用具有安全标号列的表。
53
在定义列掩码或行权限控制时,不能指定分组或超级组

系统操作

无法处理该语句。

程序员响应

更正语法,重新发布声明。

SQLSTATE

428HB

更改结束