2015-11-13 5 views
-1

Я являюсь новым учеником баз данных PL/SQL. Это упражнение, предназначенное для применения базы данных на apex.oracle.com с заданной последовательностью. Затем я создал таблицы, но когда дело доходит до заполнения таблицы с вставки кода следующим образом, Заявка данной ошибки, вы не возражаете, если мне нужна ваша помощьВставка в вложенных таблицах в Oracle DB

спасибо заранее,

CREATE TYPE TEMPORAL_VARCHAR AS OBJECT (

VALID_TIME_LOWER_BOUND DATE, 

VALID_TIME_UPPER_BOUND DATE, 

VALUE_PART VARCHAR2(50) 
); 

CREATE TYPE TEMPORAL_NUMBER AS OBJECT (

VALID_TIME_LOWER_BOUND DATE, 

VALID_TIME_UPPER_BOUND DATE, 

VALUE_PART NUMBER); 

Время связанных attributeshave определяется с кодом следующим образом;

CREATE TYPE NAME_TYPE AS TABLE OF TEMPORAL_VARCHAR; 

CREATE TYPE ADDRESS_TYPE AS TABLE OF TEMPORAL_VARCHAR; 

CREATE TYPE DEPARTMENT_TYPE AS TABLE OF TEMPORAL_VARCHAR; 

CREATE TYPE MANAGER_TYPE AS TABLE OF TEMPORAL_VARCHAR; 

CREATE TYPE SALARY_TYPE AS TABLE OF TEMPORAL_NUMBER; 

CREATE TABLE EMPLOYEE (
SSN NUMBER primary key, 

NAME NAME_TYPE, 

ADDRESS ADDRESS_TYPE , 

BIRTH_DATE DATE, 

MANAGER MANAGER_TYPE , 

DEPARTMENT DEPARTMENT_TYPE, 

SALARY SALARY_TYPE 

) 

NESTED TABLE NAME STORE AS NAME_TABLE, 

NESTED TABLE ADDRESS STORE AS ADDRESS_TABLE, 

NESTED TABLE MANAGER STORE AS MANAGER_TABLE, 

NESTED TABLE DEPARTMENT STORE AS DEPARTMENT_TABLE, 

NESTED TABLE SALARY STORE AS SALARY_TABLE 

; 

И вставки, что я inteded сделать

INSERT INTO EMPLOYEE VALUES 
(101, 

NAME(TEMPORAL_VARCHAR('23.11.2005','12.31.9999','James Brown')), 

ADDRESS(TEMPORAL_VARCHAR('23.11.2005','12.31.9999','BUCA, IZMIR')), 

'23.10.1986', 

MANAGER(TEMPORAL_VARCHAR('23.11.2005','12.31.9999','Mike White')), 

DEPARTMENT(TEMPORAL_VARCHAR('23.11.2005','12.31.9999','DEPT_ID05')), 

SALARY(TEMPORAL_NUMBER('23.11.2005',’12.31.9999’, 250000)) 
); 

И сообщение об ошибке я получил это:

ORA-00904: "ЗАРПЛАТА": недопустимый идентификатор

+0

Пожалуйста, включите точное сообщение об ошибке –

ответ

0

Имеются пробелы до _ здесь

CREATE TYPE MANAGER _TYPE AS TABLE OF TEMPORAL_VARCHAR; 

CREATE TYPE SALARY _TYPE AS TABLE OF TEMPORAL_NUMBER; 

DEPARTMENT DEPARTMENT _TYPE 

Запятая отсутствует после ОТДЕЛА _Type

+0

насчет вставки коды? – user3708524

+0

Да, я создал таблицы, но когда дело доходит до ввода, я сталкиваюсь с ошибкой – user3708524

0

попробовать это решение:

'alter session set NLS_DATE_FORMAT='DD.MM.YYYY';' 
---------------------------------------------------- 
INSERT INTO EMPLOYEE VALUES 
(101, 
NAME_TYPE(TEMPORAL_VARCHAR('23.10.1986','09.09.9999','James Brown')), 
ADDRESS_TYPE(TEMPORAL_VARCHAR('15.12.2009','09.09.9999','BUCA')), 
'23.10.1986', 
MANAGER_TYPE(TEMPORAL_VARCHAR('24.05.2008','09.09.9999','Mike White')), 
DEPARTMENT_TYPE(TEMPORAL_VARCHAR('03.01.2012','09.09.9999','DEPT_ID05')), 
SALARY_TYPE(TEMPORAL_NUMBER('01.01.2003','09.09.9999', 3200)) 
); 
Смежные вопросы