Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

ubah tabel ubah kolom di database Oracle

Kami dapat mengubah  tipe data kolom dalam tabel menggunakan ubah tabel ubah kolom di Oracle

ALTER TABLE table_nameMODIFY column_name ;

Tindakan dapat berupa banyak hal seperti
(a) mengubah tipe data
(b) Mempersingkat atau memperlebar tipe data
(c) Ubah nilai default
(d) Ubah menjadi izinkan null atau tidak null
(e) Visibilitas Kolom
(d) Modifikasi Kolom Virtual
Mari kita mulai satu per satu

Oracle MODIFY kolom mengubah tipe data

Anda dapat mengubah tipe data perubahan kolom hanya jika kolom kosong

SQL> CREATE TABLE Books_master( Book_Id NUMBER(6,0),Title VARCHAR2(50),Author VARCHAR2(50),ISBN VARCHAR2(25),BCost NUMBER(6,0),Publish_Year NUMBER(4,0) ,CONSTRAINT Books_master_PK PRIMARY KEY (Book_Id),CONSTRAINT Books_master_UK1 UNIQUE (Judul, Penulis),CONSTRAINT Books_master_UK2 UNIQUE (ISBN));Tabel Dibuat

Karena tabel kosong, kita dapat mengubah tipe data perubahan kolom

SQL> ubah tabel Books_master ubah ISBN NUMBER(6,0);Tabel diubah.SQL> ubah tabel Books_master ubah ISBN VARCHAR2(25);Tabel diubah.

Mari kita masukkan beberapa data

SQL> INSERT INTO Books_master (Book_Id, Title, Author, ISBN, BCost, Publish_Year) NILAI (10, 'Lengkap/Nyaman', 'Ketan Bhagat', 'ISBN 978-93-80349-92-3', 195 , 2013);1 baris dibuat.commit;

Sekarang coba ubah lagi kolom untuk mengubah tipe data

SQL> ubah tabel Books_master ubah ISBN NUMBER(6,0);ubah tabel Books_master ubah ISBN NUMBER(6,0)*ERROR pada baris 1:ORA-01439:kolom yang akan diubah harus kosong untuk mengubah tipe data 

Sekarang kita dapat membatalkan kolom itu dan menjalankan pernyataan ini dengan sukses

SQL> perbarui Books_master set ISBN=null;1 baris diperbarui.SQL> commit;Commit complete.SQL> ubah tabel Books_master ubah ISBN NUMBER(6,0);Tabel diubah.

Sekarang apa yang harus dilakukan jika kita ingin menyimpan data, ada beberapa opsi
(a) Tambahkan kolom baru sebagai tipe data baru, salin data ke kolom ini, hapus kolom lama, ganti nama kolom baru sebagai nama kolom yang sebenarnya:

ubah tabel books_master tambahkan nomor ISBN1; perbarui kumpulan books_master ISBN1=to_number(ISBN);ubah kolom drop tabel ISBN;ubah tabel ganti nama kolom ISBN1 menjadi ISBN;

(b) Gunakan DBMS_REDEFINITION dan bangun kembali tabel Anda dengan kolom baru

Kolom Oracle MODIFY Memperpendek atau memperlebar tipe data (mengubah tabel memodifikasi ukuran kolom Oracle)

Ini digunakan ketika kita ingin mengubah byte atau karakter VARCHAR.
Contoh

Di sini kami meningkatkan panjang VARCHAR dari 50 menjadi 100

SQL> mengubah tabel Books_master memodifikasi judul VARCHAR2(100);Tabel diubah.

Sekarang jika kita mencoba mempersingkat panjangnya dari 100 menjadi 10

SQL> ubah tabel Books_master ubah judul VARCHAR2(10);ubah tabel Books_master ubah judul VARCHAR2(10)*ERROR pada baris 1:ORA-01441:tidak dapat mengurangi panjang kolom karena beberapa nilai terlalu besar

Ini terjadi karena data yang ada tidak sesuai dengan ukuran itu. Jadi bisa tambah panjangnya atau perbarui kolom itu

SQL> ubah tabel Books_master ubah judul VARCHAR2(20);Tabel diubah.

nilai default kolom Oracle MODIFY

jika kita harus mengubah nilai default kolom

SQL> ubah tabel BOOKS_MASTER ubah BCOST default 1000;Tabel diubah.

Sekarang lain kali jika penyisipan terjadi dan BCOST adalah nol, itu akan memiliki nilai default sebagai 1000

mengubah tabel BOOKS_MASTER memodifikasi BCOST default 1000;Tabel diubah.SQL> INSERT INTO Books_master (Book_Id, Judul, Penulis, ISBN,Publish_Year) VALUES (21, 'Deception', 'Dan', 123,2001);1 baris dibuat .SQL> commit;Commit complete.SQL> pilih BCOST dari Books_master di mana book_id=21;BCOST------1000 

Oracle MODIFY kolom NULL or NOT NULL

Kita dapat memodifikasi kolom untuk mengizinkan null atau bukan null

SQL> desc books_masterName Null? Ketik---- ------BOOK_ID NOT NULL NUMBER(6)TITLE VARCHAR2(20)AUTHOR VARCHAR2(50)ISBN NUMBER(6)BCOST NOT NULL NUMBER(6)PUBLISH_YEAR NUMBER(4)SQL> mengubah tabel BOOKS_MASTER memodifikasi PUBLISH_YEAR bukan null;Tabel diubah.SQL> desc books_masterName Null? Ketik---- ---- -----BOOK_ID NOT NULL NUMBER(6)TITLE VARCHAR2(20)AUTHOR VARCHAR2(50)ISBN NUMBER(6)BCOST NOT NULL NUMBER(6)PUBLISH_YEAR NOT NULL NUMBER(4) 

Jika Anda mengubah ke not null, kita harus memiliki nilai yang ada, jika tidak ini akan gagal

Visibilitas kolom Oracle MODIFY

Kita dapat mengubah visibilitas kolom dengan Ubah kolom

SQL> desc books_masterName Null? Ketik---- ---- -----BOOK_ID NOT NULL NUMBER(6)TITLE VARCHAR2(20)AUTHOR VARCHAR2(50)ISBN NUMBER(6)BCOST NOT NULL NUMBER(6)PUBLISH_YEAR NOT NULL NUMBER(4) SQL> ubah tabel BOOKS_MASTER ubah PUBLISH_YEAR tak terlihat;Tabel diubah.Sekarang kolomnya menjadi tak terlihatSQL> desc books_masterName Null? Ketik---------BOOK_ID NOT NULL NUMBER(6)TITLE VARCHAR2(20)AUTHOR VARCHAR2(50)ISBN NUMBER(6)BCOST NOT NULL NUMBER(6)SQL> mengubah tabel BOOKS_MASTER memodifikasi PUBLISH_YEAR terlihat;Tabel diubah.Sekarang kolom menjadi visibleSQL> desc books_masterName Null? Ketik-------- -----BOOK_ID NOT NULL NUMBER(6)JUDUL VARCHAR2(20)AUTHOR VARCHAR2(50)ISBN NUMBER(6)BCOST NOT NULL NUMBER(6)PUBLISH_YEAR NOT NULL NUMBER(4) 

Saya harap Anda menyukai posting ini di tabel ubah oracle, modifikasi kolom. Harap berikan umpan balik

Juga Dibaca
ubah tabel tambahkan kolom Oracle
ubah tabel ganti nama kolom Oracle
lepaskan kolom di Oracle
https://docs.Oracle.com/cd/B28359_01/server.111/b28286/ pernyataan_3001.htm


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara melakukan Pemasangan Instans Vision EBS 12.2

  2. Sisipan/Pembaruan Batch MyBatis Untuk Oracle

  3. Apakah ada cara untuk memberikan pesan kesalahan yang mudah digunakan pada pelanggaran batasan?

  4. Oracle REGEXP_LIKE dan batasan kata

  5. SQL Server 2016 di Linux