Когда вы пишете оператор CREATE TABLE ... БЕЗ использования "двойных кавычек" для имени таблицы, тогда имя таблицы будет сохраняться с использованием всех букв UPPERCASE.
Когда вы используете «двойные кавычки», вы вводите регистр символов. Вот почему оператор ALTER TABLE не выполняется (пользователи <> ПОЛЬЗОВАТЕЛИ, роли <> РОЛИ). Вам нужно написать:
alter table "USERS"
add constraint "usr_rle_fk" foreign key ("RLE_id")
references "ROLES"("role_id");
Лучше: избегайте двойных кавычек при написании кода DDL, например:
SQL> create table roles
2 (
3 role_id number(5,0) not null,
4 name varchar2(20) not null,
5 constraint rle_pk primary key (role_id)
6 );
Table ROLES created. -- notice: table name all upper case
SQL>
SQL> create table users
2 (
3 user_id number(5,0) not null,
4 first_name varchar2(15) not null,
5 last_name varchar2(15) not null,
6 contact_number number(15,0) not null,
7 address varchar2(30) not null,
8 RLE_id number(5,0) not null,
9 constraint usr_pk primary key (user_id)
10 );
Table USERS created. -- notice: table name all upper case
SQL>
SQL> alter table users add constraint usr_rle_fk foreign key (RLE_id)
2 references roles(role_id);
Table USERS altered.
При работе с APEX (версия 19, с помощью SQL Workshop / SQL Commands) вы видите только сообщение «Таблица создана» при создании таблицы, но не имя таблицы как таковое.
* +1012 *
