Desejo criar uma procedure que adicione nova partição em uma tabela particionada por tempo. Para isso utilizo os seguintes comandos:
s_until := to_char(sysdate+1,' SYYYY-MM-DD HH24:MI:SS');
s_statement := 'ALTER TABLE '||s_table||' ADD PARTITION '||s_partition||' VALUES LESS THAN
(TO_DATE('''||s_until||''', ''SYYYY-MM-DD HH24:MI:SS'', ''NLS_CALENDAR=GREGORIAN''))
TABLESPACE '||s_tablespace;
execute immediate s_statement;
Como você vê, eu realizo conversões desnecessárias de data. Alguém sabe como ignorar este hack sujo? Executando dessa forma sem conversão dá e erro ORA.
s_statement := 'ALTER TABLE '||s_table||' ADD PARTITION '||s_partition||' VALUES LESS THAN
(sysdate+1) TABLESPACE '||s_tablespace;
execute immediate s_statement;