为什么我在创建 Table 时出错,Oracle 错误代码是:"ORA-00903: invalid table name"
Why I'm getting Error while creating Table ,Oracle Error Code is : "ORA-00903: invalid table name"
引用表的所有详细信息是 filled.My 创建语句是 :-
我正在使用 Oracle 10g 快捷版
create table Sales_order
(
S_order_no varchar2(6) Primary key check( S_order_no like '0%'),
S_order_date Date ,
Client_no Varchar2(25) references as CLIENT_MASTER ,
Dely_add Varchar2(6) ,
Salesman_no Varchar2(6) references as SALES_MASTER ,
Dely_type Char(1) check( Dely_type in ('p','f')) default 'f',
Billed_yn Char(1),
Dely_date Date check ( Dely_date < s_order_date),
Order_status Varchar2(10) check (Order_status in ('in process','fulfilled','back order','canceled'))
)
我收到 oracle 错误 "ORA-00903: invalid table name"
一些错误。
as
在引用其他 tables 时无效
default
应该在检查约束之前(第 8 行)
- 列级检查约束不能引用 table 中的其他列(第 10 行),但是 table 级可以(如 @a_horse_with_no_name 在 link 在评论中,我在此处复制)。或者,您可以使用触发器。
SQL> create table client_master (client_no varchar2(25) primary key);
Table created.
SQL> create table sales_master (salesman_no varchar2(25) primary key);
Table created.
SQL> create table sales_order
2 (
3 s_order_no varchar2(6) primary key check( s_order_no like '0%'),
4 s_order_date date ,
5 client_no varchar2(25) references client_master ,
6 dely_add varchar2(6) ,
7 salesman_no varchar2(6) references sales_master ,
8 dely_type char(1) default 'f' check( dely_type in ('p','f')) ,
9 billed_yn char(1),
10 dely_date date,
11 order_status varchar2(10) check (order_status in ('in process','fulfilled','back order','canceled')),
12 check ( dely_date < s_order_date)
13 );
Table created.
SQL>
引用表的所有详细信息是 filled.My 创建语句是 :-
我正在使用 Oracle 10g 快捷版
create table Sales_order
(
S_order_no varchar2(6) Primary key check( S_order_no like '0%'),
S_order_date Date ,
Client_no Varchar2(25) references as CLIENT_MASTER ,
Dely_add Varchar2(6) ,
Salesman_no Varchar2(6) references as SALES_MASTER ,
Dely_type Char(1) check( Dely_type in ('p','f')) default 'f',
Billed_yn Char(1),
Dely_date Date check ( Dely_date < s_order_date),
Order_status Varchar2(10) check (Order_status in ('in process','fulfilled','back order','canceled'))
)
我收到 oracle 错误 "ORA-00903: invalid table name"
一些错误。
as
在引用其他 tables 时无效
default
应该在检查约束之前(第 8 行)- 列级检查约束不能引用 table 中的其他列(第 10 行),但是 table 级可以(如 @a_horse_with_no_name 在 link 在评论中,我在此处复制)。或者,您可以使用触发器。
SQL> create table client_master (client_no varchar2(25) primary key);
Table created.
SQL> create table sales_master (salesman_no varchar2(25) primary key);
Table created.
SQL> create table sales_order
2 (
3 s_order_no varchar2(6) primary key check( s_order_no like '0%'),
4 s_order_date date ,
5 client_no varchar2(25) references client_master ,
6 dely_add varchar2(6) ,
7 salesman_no varchar2(6) references sales_master ,
8 dely_type char(1) default 'f' check( dely_type in ('p','f')) ,
9 billed_yn char(1),
10 dely_date date,
11 order_status varchar2(10) check (order_status in ('in process','fulfilled','back order','canceled')),
12 check ( dely_date < s_order_date)
13 );
Table created.
SQL>