为什么我在创建 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>