установить значение по умолчанию для столбца DATE с другим столбцом (VARCHAR2 (8)), ошибка ora-00904 - PullRequest
0 голосов
/ 01 мая 2020
create table T_XXX
(
   DATE_POST VARCHAR2(8) NOT NULL,
   DATE_GET DATE DEFAULT TO_DATE(SUBSTR("DATE_POST",1,8),'YYYYMMDD')
);

Ошибка:

ORA-00904: "DATE_POST"

Почему это происходит?

Моя Oracle версия 12 c

1 Ответ

1 голос
/ 01 мая 2020

Нет, это не сработает.

Но, поскольку вы используете 12 c, создайте виртуальный столбец . Например:

SQL> alter session set nls_Date_format = 'dd.mm.yyyy';

Session altered.

SQL> create table test
  2    (date_post varchar2(8),
  3     date_get  date generated always as (to_date(date_post, 'yyyymmdd'))
  4    );

Table created.

SQL> insert into test (date_post) values ('20200501');

1 row created.

SQL> select * From test;

DATE_POS DATE_GET
-------- ----------
20200501 01.05.2020

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