ستون های پنهان در جدول – پایگاه داده اوراکل ۱۲c

ستون های پنهان در جدول در عملیات های مهاجرت و جابجایی application ها مفید می باشند. ساخت ستون های پنهان جدید به این معنی می باشد که application های جاری نمی توانند آن را ببیند اما application های جدید می توانند از آنها استفاده کنند به همین دلیل عملیات مهاجرت می تواند ساده تر گردد.
ستون های پنهان به وسیله دستور select * from و ویژگی %ROWTYPE دیده نمی شوند.

;DROP TABLE tab1 PURGE

CREATE TABLE tab1)
id NUMBER,
description VARCHAR2(50) INVISIBLE
;(

;DESC tab1
Name Null? Type
—————————————– ——– —————————-
ID NUMBER

<SQL

;(INSERT INTO tab1 VALUES (1
;COMMIT

;SELECT * FROM tab1

ID
———-
۱

<SQL

ستون های پنهان را می تواند در همه عملیات ها استفاده کرد به شرط اینکه با نام خودشان فراخوانی شوند.

;(‘INSERT INTO tab1 (id, description) VALUES (2, ‘TWO
;COMMIT

SELECT id, description
;FROM tab1

ID DESCRIPTION
———- ————————————————–
۱
۲ TWO

<SQL

برخی از خواص گوناگون این امکان جدید اوراکل در ادامه آورده شده است :

  • ستونهای مجازی می توانند به صورت ستون پنهان ساخته شوند.
  • یک جدول می تواند با ستون پنهان خود پارتیشن شود، حتی در زمان بعد از ساخت جدول
  • جداول External، cluster و temporary نمی توانند ستون های پنهان داشته باشند
  • نوع هایی که توسط کاربر تعریف می شوند، نمی توانند ویژگی ستون پنهان داشته باشند
  • نمی توانید سیستمی تولید کنید که ستون های پنهان تولید کند.

مرتب سازی بر اساس ستون های پنهان :
ستون های پنهان در order by استفاده نمی شوند، ستون های پنهان به عنوان آخرین ستون های جدول، قرار می گیرند.

;DROP TABLE tab1 PURGE

)CREATE TABLE tab1
a NUMBER
,b NUMBER,
c NUMBER INVISIBLE
;(

COLUMN column_name FORMAT A15

SELECT column_id
column_name,
hidden_column,
FROM user_tab_cols
‘WHERE table_name = ‘TAB1
;ORDER BY column_id

COLUMN_ID COLUMN_NAME HID
———- ————— —
۱ A NO
۲ B NO
C YES

<SQL

;ALTER TABLE tab1 MODIFY b INVISIBLE
;ALTER TABLE tab1 MODIFY c VISIBLE

SELECT column_id
column_name,
hidden_column,
FROM user_tab_cols
‘WHERE table_name = ‘TAB1
;ORDER BY column_id

COLUMN_ID COLUMN_NAME HID
———- ————— —
۱ A NO
۲ C NO
B YES

<SQL

;ALTER TABLE tab1 MODIFY b VISIBLE

SELECT column_id
column_name,
hidden_column,
FROM user_tab_cols
‘WHERE table_name = ‘TAB1
;ORDER BY column_id

COLUMN_ID COLUMN_NAME HID
———- ————— —
۱ A NO
۲ C NO
۳ B NO

<SQL

ستون های پنهان اجباری :
پنهان شدن ستون تاثیری بر وضعیت اجباری و یا اختیاری بودن آن ندارد. در ادامه یک مثال آورده شده است :

;DROP TABLE tab1 PURGE

)CREATE TABLE tab1
id NUMBER NOT NULL
description VARCHAR2(50) NOT NULL,
created_date DATE INVISIBLE NOT NULL,
;(

COLUMN column_name FORMAT A20

SELECT column_id
column_name,
nullable,
hidden_column,
FROM user_tab_cols
‘WHERE table_name = ‘TAB1
;ORDER BY column_id

COLUMN_ID COLUMN_NAME N HID
———- ——————– – —
۱ ID N NO
۲ DESCRIPTION N NO
CREATED_DATE N YES

<SQL

;(‘INSERT INTO tab1 VALUES (1, ‘ONE
*
ERROR at line 1:
(“ORA-01400: cannot insert NULL into (“TEST”.”TAB1″.”CREATED_DATE

<SQL

;ALTER TABLE tab1 MODIFY created_date NULL
;(‘INSERT INTO tab1 VALUES (1, ‘ONE

۱ row created.

<SQL

دیدگاهتان را بنویسید