INTERFACE_ID - строковый литерал. Поэтому необходимо заключать в кавычки. Только потому, что вы используете динамический SQL, вам нужно избегать их:
EXECUTE IMMEDIATE 'ALTER TABLE JDACUST.JCFF_INT_INB_STAGING_DATA
MODIFY partition '||L_partition_name ||
' ADD subpartition '||L_subpartition_name||' values ('''||INTERFACE_ID||''')';
Динамический SQL сложен, потому что он превращает ошибки компиляции в ошибки времени выполнения. Чтобы обнаружить ошибки, мы должны думать как компилятор. Облегчи себя и используй переменную для сборки исполняемой строки. Вы можете отключить переменную, чтобы увидеть фактически выполненный оператор, который легче отлаживать:
stmt := 'ALTER TABLE JDACUST.JCFF_INT_INB_STAGING_DATA
MODIFY partition '||L_partition_name ||
' ADD subpartition '||L_subpartition_name||' values ('''||INTERFACE_ID||''')';
dbms_output.put_line(stmt);
EXECUTE IMMEDIATE stmt;