Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Tabelle ändern, Spalte hinzufügen / ORA-00984:Spalte hier nicht erlaubt PLSQL

Sie müssen einfache Anführungszeichen für die Formatmaske verwenden:

ALTER TABLE USUVCB.TVCB_RUT_SII ADD (Fecha_Inicio VARCHAR2(10 BYTE) DEFAULT TO_CHAR(SYSDATE, 'YYYY-MM-DD') NOT NULL);

In einem EXECUTE ist dies:

execute immediate 'ALTER TABLE USUVCB.TVCB_RUT_SII ADD (Fecha_Inicio VARCHAR2(10 BYTE) DEFAULT TO_CHAR(SYSDATE, ''YYYY-MM-DD'') NOT NULL)';

Beachten Sie, dass Sie DDL-Abfragen ausführen, sodass Sie die vorgenommenen Änderungen nicht rückgängig machen können. Ein Rollback betrifft nur Daten, nicht die Struktur.

Außerdem, warum speichern Sie ein Datum in einem varchar Säule? es ist eine schlechte Idee, es wäre viel besser ein date Spalte