Kako napraviti read only tabelu u Oracle bazi

Wednesday, 01.04.2009 – Dejan

Da, dobro ste pročitali! Ne read only tablespace, nego read only tabela!

Ukoliko ikad poželite neku tabelu prebaciti u read only režim (dozvoljen samo SELECT, a zabranjeni su INSERT, DELETE i UPDATE), onda postoji jednostavno rješenje – CHECK CONSTRAINT DISABLE VALIDATE.

Kako to izgleda u praksi, evo jedan primjer:

drop table read_only_tabela;

create table read_only_tabela (id number);

insert into read_only_tabela
select column_value
  from table(sys.odcinumberlist(1,2,3,4));

commit;

select * from read_only_tabela;

alter table read_only_tabela add constraint read_only_ck check(1=1) disable validate;

insert into read_only_tabela values(5);

ORA-25128: No insert/update/delete on table with constraint
(DEJAN.READ_ONLY_TABELA) disabled and validated

Čisto sumnjam da će vam ovo trebati u životu, ali nikad se ne zna. 😉

  1. 4 Responses to “Kako napraviti read only tabelu u Oracle bazi”

  2. Upravno, nikad se ne zna 🙂

    By Silverstar on Apr 2, 2009

  3. Ili ako imaš 11-cu pa jednostavno:

    alter table read_only_tabela read only; 🙂

    By Marko on Apr 2, 2009

  4. @Marko: Jos nisam licno upoznao nekog, ko koristi 11g u produktivne svrhe. 🙂

    Glavni shef Oracle Expert Services tima u Austriji mi je rekao da samo jedna firma trenutno radi na migraciji sa 10g na 11g (kladinica bwin.com), a da ih dosta ceka na 11g Release 2. I mi u firmi takodje cekamo na stabilni Release 2, pa cemo tek onda poceti sa testiranjem i migracijom…

    By Dejan on Apr 2, 2009

  5. @Dejan: Da, tako je i kod nas – iako viđam po blogovima i forumima da ima ljudi koji polako prelaze na 11-cu i vrlo su zadovoljni kako im radi.

    Možda neko odluči preći na 11g baš zbog jednostavnijeg postavljanja tablice u read only mode 😀 (nikad ne znaš)

    By Marko on Apr 2, 2009

Post a Comment