منبع اصلی نوشتار زیر در این لینک قرار دارد

جدول های فقط خواندنی در اوراکل

از اوراکل 11g به بعد امکان قرار دادن جدول ها بطور مجزا در حالت فقط خواندنی یا Read Only فراهم شد. تا پیش از نسخه 11g باید برای Read Only کردن جدول یا کل پایگاه داده یا Tablespace‌ ای که جدول در آن است را در حالت Read Only قرار می گرفت. دو حالت برای جدول وجود دارد: یکی Read Only و دیگری Read Write. با قرار دادن یک جدول در حالت فقط خواندنی دیگر امکان INSERT, DELETE و UPDATE بر روی جدول و سطر های آن نمی باشد.با دستور ALTER TABLE یک جدول را جدای از دیگر جدوال یا به بیان دیگر جدای از Tablespace آن در حالت فقط خواندنی قار داد.

;ALTER TABLE table_name RAED ONLY

;ALTER TABLE table_name RAED WRITE

در صورت INSERT, DELETE و UPDATE بر روی جدول خطای زیر نشان داده می شود.

“ORA-12081: update operation not allowed on table “SYSTEM”.”INV

با استفاده از پرس و جوی زیر از جدول user_tables جدول های کاربری فعلی (کاربری که جلسه کاری را ایجاد کرده است) که به صورت فقط خواندنی هستند را نشان می دهد.

;’select table_name, read_only from user_tables where read_only=’YES

یا با استفاده از پرس و جوی زیر بطور سراسری جدول ها و مالکان آنها را که به صورت فقط خواندنی هستند را پیدا کنید

;’select owner, table_name, tablespace_name from dba_tables where read_only=’YES

تفاوت جدول user_tables با dba_tables در این است که جدول user_tables اطلاع های کاربری که به اوراکل Login کرده است (بطور مثال از طریق sqlplus) را دارد اما dba_tables اطلاع های کل کاربران. برای همین است که در user_tables ستونی به نام owner نیست چون owner همان کسی است که به اوراکل Login کرده و جلسه کاری را ایجاد نموده است.



برچسب ها : , ,