Триггер Добавить раздел - PullRequest
0 голосов
/ 09 апреля 2020

ОШИБКА ВЫПОЛНИТЬ, ДАТА ОШИБКИ, КАКОЙ ФОРМАТ ИСПОЛЬЗОВАТЬ?

CREATE OR REPLACE PROCEDURE prc_partitionFN (data IN DATE, name IN VARCHAR2)
AS
 a VARCHAR2(400);
 d DATE;
BEGIN

    SELECT TO_DATE(data , 'YYYY/MM')INTO d
    FROM dual;

    a := 'ALTER TABLE fornitore_negozio ADD PARTITION name VALUES LESS THAN (d)';
    EXECUTE IMMEDIATE a;

    dbms_output.put_line('Partizione creata correttamente');
    END prc_partitionFN;

1 Ответ

0 голосов
/ 09 апреля 2020

Почему вы конвертируете дату в дату снова?

Я думаю, вам нужно следующее:

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;
...