2017-01-13 5 views
0

値(価格値)を負の数にすることができないように、Oracle DBのDistinctユーザー定義型(1つの属性を持つオブジェクト型)に何らかの制約を適用する方法を知りたいですか?Oracle DBでユーザー定義型(別名)に制約を適用する方法は?

CREATE OR REPLACE TYPE price_info AS OBJECT(
value NUMBER, 
MEMBER FUNCTION get_value RETURN NUMBER) 
+0

ドキュメント::だから https://docs.oracle.com/cd/B28359_01/appdev.111/b28371/adobjdes.htm#ADOBJ00814 – Rene

+0

私がすることができます

私はこのタイプを持っていますオブジェクト型の中にこの機能を実装していないのですか?では、テーブルを作成するときにどのように実装できますか?列を定義するときにどのように条件(制約)を定義する必要がありますか? MySQLでは、覚えているとSIGNEDまたはUNSIGNEDがあります... Oracleのコードラインはどうすればいいですか? – MaliVragolan

答えて

2
SQL> create table prices 
    2 (price price_info 
    3 , check (price.value >= 0)); 

Table created. 

SQL> insert into prices values (price_info(-1)); 
insert into prices values (price_info(-1)) 
* 
ERROR at line 1: 
ORA-02290: check constraint (SYSTEM.SYS_C0012070) violated 
+0

これは唯一の方法ですか?この種のObject型にはコンストラクタがありませんか? – MaliVragolan

関連する問題