Проблема с созданием изменяемой таблицы и вставкой данных — teradata

#sql #teradata

#sql #teradata

Вопрос:

Всякий раз, когда я пытаюсь выполнить, я получаю ошибку 3707, которая сообщает мне, что ожидается что-то вроде имени или идентификатора, разделенного Юникодом, между словом ‘I_SYS_CLM’ и ключевым словом integer. Я попытался удалить целое число после I_SYS_CLM, и это не помогло

СОЗДАЙТЕ ИЗМЕНЯЕМУЮ ТАБЛИЦУ ep_three, ЖУРНАЛА НЕТ

 ( I_SYS_CLM  integer  

 , N_COV VARCHAR(10) 

 , Q_DAY_DBY integer

 , Q_DAY_PRC_ELM integer

 , Q_DAY_BFT integer)

        ON COMMIT PRESERVE ROWS;

INSERT INTO ep_three

SELECT

 I_SYS_CLM  integer  

 , N_COV 

 , Q_DAY_DBY 

 , Q_DAY_PRC_ELM 

 , Q_DAY_BFT 

FROM pearl_p.TLTC921_SMY

SELECT 

 I_SYS_CLM

 , N_COV

 , Q_DAY_DBY 

 , Q_DAY_PRC_ELM 

 , Q_DAY_BFT 

FROM pearl_p.TLTC921_SMY
  

Комментарии:

1. SELECT I_SYS_CLM integer просто удалите integer после имени столбца в SELECT . Также вы не указали ошибку.

2. спасибо за помощь. К сожалению, удаление этого не сработало. Ошибка была 3707, ожидающей чего-то вроде имени или идентификатора, разделенного Юникодом, между словом ‘I_SYS_CLM’ и ключевым словом integer.

Ответ №1:

Две проблемы:

  1. У вас в инструкции select висит ключевое слово integer , что является бессмыслицей. Запустите часть SELECT самостоятельно и исправьте ошибки, чтобы решить это в будущем.
  2. У вас дважды указан один и тот же оператор SELECT, что не имеет никакого смысла.

Вместо этого просто:

 CREATE VOLATILE TABLE ep_three
    ,NO LOG (
    I_SYS_CLM INTEGER
    ,N_COV VARCHAR(10)
    ,Q_DAY_DBY INTEGER
    ,Q_DAY_PRC_ELM INTEGER
    ,Q_DAY_BFT INTEGER
    ) ON

COMMIT PRESERVE ROWS;

INSERT INTO ep_three
SELECT I_SYS_CLM 
    ,N_COV
    ,Q_DAY_DBY
    ,Q_DAY_PRC_ELM
    ,Q_DAY_BFT
FROM pearl_p.TLTC921_SMY;