Почему вы конвертируете дату в дату снова?
Я думаю, вам нужно следующее:
CREATE OR REPLACE PROCEDURE PRC_PARTITIONFN (
DATA IN DATE,
NAME IN VARCHAR2
) AS
A VARCHAR2(400);
BEGIN
A := 'ALTER TABLE fornitore_negozio ADD PARTITION name VALUES LESS THAN (TO_DATE('''
|| TO_CHAR(DATA, 'YYYY/MM')
|| ',''YYYY/MM'')';
EXECUTE IMMEDIATE A;
DBMS_OUTPUT.PUT_LINE('Partizione creata correttamente');
END PRC_PARTITIONFN;