В ваших скобках нет ничего плохого (да, вы можете удалить некоторые из них, но это не правильный синтаксис, чтобы оставить их там);однако вы не можете иметь переменную, начинающуюся с подчеркивания в PL / SQL.
DECLARE
yearStatus CHAR(4) := '2019';
MonthAndDay CHAR(4) := '0101';
current_end DATE;
BEGIN
current_end := to_date(((to_number(yearStatus)) ||
MonthAndDay),
'YYYYMMDD');
DBMS_OUTPUT.PUT_LINE( current_end );
END;
/
Выводы:
2019-01-01T00:00:00
Однако, если вы хотите упроститьЗатем вы можете избавиться от вызова TO_NUMBER
, так как оператор конкатенации ||
неявным образом преобразует его обратно в строку:
DECLARE
yearStatus CHAR(4) := '2019';
MonthAndDay CHAR(4) := '0101';
current_end DATE;
BEGIN
current_end := to_date(yearStatus || MonthAndDay, 'YYYYMMDD');
DBMS_OUTPUT.PUT_LINE( current_end );
END;
/
db <> fiddle здесь