PLS-00103 обозначен символом - PullRequest
0 голосов
/ 09 декабря 2018

Я уже пытался искать этот тип ошибки.У меня есть похожие ошибки на других, но разные проблемы.Пожалуйста, помогите мне с этим, каков хороший подход к этому примеру запроса оракула?

create type Exams (
    year char(4),
    city varchar(20)
)
create table exams of type Exams 

create OR REPLACE type Skills AS OBJECT(
type varchar(20),
ExamSet Exams multiset
);
/
create table skills of Skills;

Вот ошибка в выводе скрипта:

LINE/COL  ERROR
--------- -------------------------------------------------------------
1/12      PLS-00103: Encountered the symbol "(" when expecting one of the following:     ; is authid as compress force compiled wrapped under 
Errors: check compiler log

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

это будет работать:

CREATE TABLE new_table
  AS (SELECT *
      FROM old_table WHERE 1=2);

для вашего случая это выглядит так:

CREATE TABLE exams 
  AS (SELECT *
      FROM Exams WHERE 1=2);

для 1=2 он не выбирает ни одну из строк, но с asон копирует определение таблицы !!!!!!!!!спасибо !!!!!!!!!

0 голосов
/ 09 декабря 2018

Попробуйте:

CREATE OR REPLACE TYPE ExamsType AS OBJECT ( 
    year char(4),
    city varchar(20) 
);
/
create table Exams OF ExamsType;

Исправления:

  • создайте тип AS OBJECT;это даст вам абстрактный тип данных (ADT), который может содержать атрибуты - см. документы оракула

  • вам нужна точка с запятой и косая черта вконец оператора create type

  • таблица не может иметь того же имени, что и тип

  • синтаксис для CREATE TABLE неверен

Чтобы вставить в эту таблицу, вы обычно используете следующий оператор:

insert into Exams values( ExamsType('2018', 'my adress') );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...