Продолжайте получать ошибку ORA-02438 при попытке создать таблицу - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь запустить мой код, но он продолжает выдавать мне эту ошибку.Я новичок в SQL и еще не привык к нему, и я продолжаю пытаться исправить это, но я не могу заставить его работать.Я поместил обе таблицы в код описания ниже.

 Create table Account
(
    Account_Number Number(7,0)
      Constraint PK_Account_Account_Number Primary Key
      Constraint NN_Account_Account_Number Not Null,  
    Account_Balance Number(13,2)
      Constraint NN_Account_Account_Balance Not Null
);


  Create table Investor
(
  Investor_Number Number(7,0)
      Constraint PK_Investor_Investor_Number Not Null,
  First_Name Varchar2(25)
      Constraint NN_Investor_First_Name Not Null,
  Last_Name Varchar2(30)
      Constraint NN_Investor_Last_Name Not Null,    
  Street_Address Varchar2(35)
      Constraint NL_Investor_Street_Address Null,
  City Varchar2(25)
      Constraint NL_Investor_City Null,
  Province Char(2)
      Constraint CK_Investor_Province Check (Province in ('__'))
      Constraint NL_Investor_Province Null,
  Postal_Code Varchar2(7)
      Constraint CK_Investor_Postal_Code Check (REGEXP_like(string,'[A-Z]-[0-9]-[A-Z]-[0-9]-[A-Z]-[0-9]'))
      Constraint NL_Investor_Posta_Code Null,
  Area_Code Number(3,0)
      Default '780'
      Constraint NN_Investor_Area_Code Not Null,
  Phone_Number Number(7,0) 
      Constraint NN_Investor_Phone_Number Not Null,
  Account_Number Number(7,0) Not Null,
      Constraint FK__Investor_Account_Number --Name of Constraint
      Foreign Key (Account_Number) -- Foreign Key Column name
      References Account(Account_Number)-- name of table and column trying to reference,
  );

1 Ответ

0 голосов
/ 12 сентября 2018

Проверочное ограничение в Postal_Code ссылается на string вместо фактического имени столбца; должно быть:

  Postal_Code Varchar2(7)
      Constraint CK_Investor_Postal_Code Check
          (REGEXP_like(Postal_Code,'[A-Z]-[0-9]-[A-Z]-[0-9]-[A-Z]-[0-9]'))
      Constraint NL_Investor_Postal_Code Null,

дб <> скрипка

Ошибка, которую вы получаете, заключается в том, что анализатор интерпретирует string как идентификатор и предполагает, что это имя другого столбца, даже если это не так. Хотя, очевидно, нет ничего другого, так что это не совсем необоснованно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...