Что вы пытаетесь достичь, неясно. В любом случае вы не можете передать имя переменной как переменную .
Если вы хотите передать счет в переменную из фиксированного запроса, вы можете пропустить EXECUTE IMMEDIATE
:он предназначен для выполнения динамически составленного запроса, что не имеет место в коде, который вы показали:
declare v_datacount_backuptable int;
begin
SELECT /*+ parallel (8) */ COUNT(1) INTO v_datacount_backuptable FROM cs_transassignment_26weeks;
dbms_output.put_line(v_datacount_backuptable);
end;
/
Если вы действительно построили запрос где-то еще и вам нужно его выполнить, то,Как уже ответил Littlefoot, вам нужно убрать предложение INTO
из строки запроса:
declare
v_datacount_backuptable int;
v_query varchar(500);
begin
v_query := 'SELECT /*+ parallel (8) */ COUNT(1) FROM cs_transassignment_26weeks';
EXECUTE IMMEDIATE v_query INTO v_datacount_backuptable;
dbms_output.put_line(v_datacount_backuptable);
end;
/
Демонстрация по БД Fiddle