Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zmień tabelę, dodaj kolumnę / ORA-00984:kolumna niedozwolona tutaj PLSQL

Musisz użyć pojedynczych cudzysłowów jako maski formatu:

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

W EXECUTE będzie to:

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

Zauważ, że wykonujesz zapytania DDL, więc nie będziesz w stanie wycofać dokonanych modyfikacji. Wycofanie dotyczy tylko danych, a nie struktury.

Poza tym, dlaczego przechowujesz datę w varchar? kolumna? to zły pomysł, znacznie lepiej byłoby date kolumna



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę uzyskać różnicę w godzinach między dwiema datami?

  2. Grupuj Oracle część wiersza i uzyskaj wiersz z najnowszym znacznikiem czasu

  3. Czy możesz WYBRAĆ wszystko oprócz 1 lub 2 pól, bez skurczu pisarza?

  4. Jak przekazać argument do bloku PL/SQL w pliku sql o nazwie przy użyciu START w sqlplus?

  5. Zwróć sys_refcursor wyroczni do c#