Oracle | Обновить длинный тип | Ошибка: незаконное использование типа данных LONG - PullRequest
0 голосов
/ 06 августа 2020

Как исправить проблему при ОБНОВЛЕНИИ?

Ниже приведены связанные данные и ошибка

Error starting at line : 1 in command -
UPDATE JOB_STATUS 
SET STATUS ='FAILED' ,ENDDATE=sysdate, REMARKS = 'Error' 
WHERE ID = 30
Error at Command Line : 3 Column : 7
Error report -
SQL Error: ORA-00997: illegal use of LONG datatype
00997. 00000 -  "illegal use of LONG datatype"
*Cause:    
*Action:

Ниже приведена структура таблицы:

ID  LONG
STARTDATE   TIMESTAMP(6)
ENDDATE TIMESTAMP(6)
STATUS  VARCHAR2(20 CHAR)
REMARKS VARCHAR2(255 CHAR)
JOBID   NUMBER(38,0)

Не удалось найти ответы в связанных вопросах. Не уверен, нужно ли мне изменять тип данных таблицы, но когда я пытаюсь изменить, он говорит сначала удалить данные.

1 Ответ

2 голосов
/ 06 августа 2020

если ID - это первичный ключ - он не должен быть LONG.

Столбец LONG имеет ограничения - вы можете использовать столбцы LONG в списках SELECT, предложениях SET операторов UPDATE и VALUES пункты операторов INSERT.

есть больший список, где его нельзя использовать! включая

  • столбцы LONG не могут появляться в предложениях WHERE или в ограничениях целостности (за исключением того, что они могут появляться в ограничениях NULL и NOT NULL).

см. список https://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements001.htm#SQLRF00201 https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1831

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...