检查用户定义类型Oracle

时间:2018-01-08 11:46:36

标签: oracle plsql ddl check-constraints

我需要创建一个只能容纳长度在8到13个字符之间的正数的类型。我能想到的最好的是,但它不起作用:

CREATE OR REPLACE TYPE TYPE1 AS OBJECT (
TYPE1 NUMBER (13)
) FINAL;


CREATE TABLE table1(
someNumber TYPE1
check ( someNumber between 11111111 and 9999999999999)
)

寻找一种方法,如果可能的话,为UDT添加约束。

2 个答案:

答案 0 :(得分:1)

您必须使用对象的列名

{{1}}

DEMO

答案 1 :(得分:0)

最接近的是在类型的构造函数或方法中编写一些验证。但是,这不会明确地设置someNumber。 没有事件可以捕获这个等同于表约束或触发器的事件,除非该对象用于表中,在这种情况下您可以在表上定义约束,但这些将独立于类型定义。 / p>