Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Thay đổi bảng, thêm cột / ORA-00984:cột không được phép ở đây PLSQL

Bạn cần sử dụng dấu ngoặc kép cho mặt nạ định dạng:

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

Trong một EXECUTE, điều này sẽ là:

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

Lưu ý rằng bạn đang thực hiện các truy vấn DDL, vì vậy bạn sẽ không thể khôi phục các sửa đổi mà bạn đã thực hiện. Việc khôi phục chỉ ảnh hưởng đến dữ liệu, không ảnh hưởng đến cấu trúc.

Ngoài ra, tại sao bạn lại lưu trữ ngày trong varchar cột? đó là một ý tưởng tồi, sẽ tốt hơn nhiều là một date cột



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để thực hiện cập nhật động này trong Oracle?

  2. java.sql.SQLException:Listener từ chối kết nối với lỗi sau:ORA-12519, TNS:không tìm thấy trình xử lý dịch vụ thích hợp

  3. Sử dụng thủ tục pl-sql hoặc con trỏ để chọn 3 thứ hạng hàng đầu

  4. Chuyển danh sách ngày tháng vào hàm oracle db qua java

  5. Khởi động PHP:Không thể tải thư viện động 'C:\ xampp \ php \ ext \ php_oci8_12c.dll' - Không thể tìm thấy quy trình đã chỉ định