2013-09-25 6 views
0

Я недавно установил Oracle Application Express 11g.Ошибка при создании пользовательского типа данных

Я пытаюсь создать нижеуказанный пользовательский тип данных.

create or replace type dept_type AS Object 
(
    dept_no DEPT.deptno%type, 
    dept_name DEPT.DNAME%type, 
    LOC DEPT.LOC%type 
) 

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

Error at line 4: PLS-00201: identifier 'DEPT.DEPTNO' must be declared 

2. (
3. dept_no DEPT.deptno%type, 
4. dept_name DEPT.DNAME%type, 
5. LOC DEPT.LOC%type 
6.) 

Я не понимаю, почему приведенное выше исключение подходит? Это что-то не так с моим определением?

ответ

4

Тип объекта: SQL объект. Вы не можете использовать <object>%type в SQL, вы можете использовать этот тип конструкции только в коде PL/SQL.

Например, это будет терпеть неудачу:

CREATE TABLE test_table (x dual.dummy%type); 

Вы должны указать точный тип данных, как если бы вы создавали таблицу.

+0

Спасибо Винсент за ваш ответ. – Beast

+0

Если я хочу узнать о другом объекте SQL, можете ли вы предоставить полезную ссылку. – Beast

+0

Несомненно, вы можете начать с [документации SQL] (http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_8001.htm#BABHJHEB). Существует также полное [Руководство по созданию объектно-реляционного разработчика] (http://docs.oracle.com/cd/E11882_01/appdev.112/e11822/toc.htm). –

Смежные вопросы