如果你想在行中指定一個NOT NULL約束,您需要使用約束關鍵字,與其他類型的約束條件一樣使用
create table Funkcje
(
nazwa_funkcji varchar(15) constraint funk_pk PRIMARY KEY,
min_myszy number(5) constraint funk_min_nn NOT NULL,
max_myszy number(5) constraint funk_max_nn NOT NULL,
constraint funk_ch check(min_myszy < max_myszy)
)
這將返回在數據字典
SQL> select constraint_name, constraint_type, search_condition_vc
2 from user_constraints
3 where table_name = 'FUNKCJE';
CONSTRAINT_NAME C SEARCH_CONDITION_VC
-------------------- - -----------------------
FUNK_MIN_NN C "MIN_MYSZY" IS NOT NULL
FUNK_MAX_NN C "MAX_MYSZY" IS NOT NULL
FUNK_CH C min_myszy < max_myszy
FUNK_PK P
而且下面,雖然VARCHAR和VARCHAR2是相同的Oracle不保證VARCHAR的當前行爲將繼續(它已經很長一段時間相同,雖然)。使用varchar2會更平常。 The documentation says:
請勿使用VARCHAR數據類型。改爲使用VARCHAR2數據類型。 雖然VARCHAR數據類型當前與VARCHAR2, 同義,但VARCHAR數據類型計劃重新定義爲與 不同的比較語義相比用於可變長度字符串的單獨數據類型 。
來源
2017-01-13 08:50:45
Ben