SQL Oracle ошибка - PullRequest
       3

SQL Oracle ошибка

0 голосов
/ 21 октября 2011
insert into tour_concerts values
('1', to_date('02/08/1974', 'DD/MM/YYYY'), 'Misc Concerts', 'UK'),

insert into tour_concerts values
('2', to_date('01/01/1977', 'DD/MM/YYYY'), 'The Hoople North America Your', 'USA'),

insert into tour_concerts values
('3', to_date('05/09/1971', 'DD/MM/YYYY'), 'Sheer Heart Attack UK tour', 'UK'),

insert into tour_concerts values
('4', to_date('09/02/1972', 'DD/MM/YYYY'), 'Works Japan tour', 'Japan'),

insert into tour_concerts values
('5', to_date('03/10/1975', 'DD/MM/YYYY'), 'Magic Tour', 'UK'),

insert into tour_concerts values
('6', to_date('02/01/1974', 'DD/MM/YYYY'), 'Freddie Mercury Tribute Concert for AIDS Awareness', 'UK');

SQL> @tour_concerts1;
('6', to_date('02/01/1974', 'DD/MM/YYYY'), 'Freddie Mercury Tribu
te Concert for AIDS Awareness', 'UK')
                                       *

ОШИБКА в строке 2:

ORA-12899: слишком большое значение для столбца "S3327043". "TOUR_CONCERTS".«ТИП» (фактический: 50, максимальный: 30)


Может кто-нибудь помочь мне исправить эту ошибку?


ОК, Я ИСПРАВЛЕНО

Ответы [ 4 ]

1 голос
/ 21 октября 2011

Эта ошибка явно указывает на то, что вы пытаетесь вставить слишком длинное значение varchar в 3-й столбец таблицы tour_concerts.

Вы можете исправить это:

  1. Изменение структуры таблицы, чтобы столбец мог принимать более 30 символов. Например, 50 - это количество символов оператора, который не выполняется.

    alter table tour_concerts modify column_name varchar2(50)

  2. Используйте функцию Oracle substr:

    `вставить в значения tour_concerts ('6', to_date ('02 / 01/1974 ',' DD / MM / YYYY '), substr (' Концерт Tredte Freddie Mercury для осведомленности о СПИДе ', 0, 30),' UK ');

  3. Если эти записи вставляются через приложение, например, через jdbc, обрежьте пользовательский ввод, чтобы он не превышал максимальные размеры вашей таблицы.

0 голосов
/ 21 октября 2011

Отметьте в этой статье кажется, что вы пытаетесь вставить более длинное значение, чем поле, сделайте поля больше максимального значения, которое вам может понадобиться.

0 голосов
/ 21 октября 2011

Да. Я думаю, вам следует изменить таблицу. 30 слишком короткая.
Если ваша БД оракул:

alter table YOURTABLE alter column 'S3327043' varchar(100)
0 голосов
/ 21 октября 2011

Ошибка ясна: поле TOUR_CONCERTS.TYPE допускает 30 символов, не более, и вы пытаетесь вставить более длинную строку.
У вас есть два способа решить эту проблему:

  1. Сократитьвставляемая строка ( Концерт Tredte Freddie Mercury для осведомленности о СПИДе длиннее 30 символов)
  2. Измените определение таблицы и задайте TOUR_CONCERTS.TYPE для длины поляболее высокое значение (скажем, 200?)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...