«Синтаксическая ошибка рядом с« SELECT »в строке 9»
ALTER PROCEDURE "DBA"."ultimaDataMigracao"()
RESULT( ultimaData TIMESTAMP)
BEGIN
IF EXISTS (SELECT * FroM migracao_controlo) THEN
SELECT max(DataMigracao)
From migracao_controlo;
ELSE
INSERT INTO migracao_controlo (Id, DataMigracao) VALUES ('1','2000-01-01 00:00:00')
SELECT max(DataMigracao)
From migracao_controlo;
END IF
END
Я пытаюсь выбрать самую большую метку времени в таблице, но ее нет. Я хочу вставить «2000-01 -01 00:00:00 ", а затем выберите его.
Кто-нибудь может помочь? Я не уверен, почему он не работает.
вы можете попробовать это
ALTER PROCEDURE "DBA"."ultimaDataMigracao"()
RESULT( ultimaData TIMESTAMP)
BEGIN
IF EXISTS (SELECT * FroM migracao_controlo) THEN
SELECT max(DataMigracao)
From migracao_controlo;
ELSE
INSERT INTO migracao_controlo (Id, DataMigracao)
SELECT 1, nvl(max(DataMigracao),to_date('01012000','DDMMYYYY'))
From migracao_controlo;
END IF
END
nvl вернуть второй параметр, если первый имеет значение null.
см. здесь: https://www.w3schools.com/sql/ sql_isnull.asp
Вы хотите добавить точку с запятой (;) после оператора INSERT, чтобы убедиться, что она рассматривается как отдельный оператор из SELECT в базе данных.