مسعود سلطانی راد
مسعود سلطانی راد
خواندن ۲ دقیقه·۱ سال پیش

معرفی قابلیت Table values constructor در Oracle Database 23c


مقدمه:

Table values constructor به ما اجازه می دهد چندین ردیف را با استفاده از دستور برای استفاده در دستورات SQL تعریف کنیم. این قابلیت Table Values Constructor در Oracle Database 23c  معرفی شده است.

برای نصب و راه اندازی پایگاه داده Oracle 23c از این مستند استفاده کنید.

بررسی در محیط تست :

برای اینکار در ابتدا یک جدول ایجاد می کنیم سپس دستورات مربوطه را اجرا می کنیم.

drop table if exists t1;

create table t1 (

id number,

code varchar2(6),

description varchar(25),

constraint t1_pk primary key (id)

);

دستور INSERT:

سازنده مقادیر جدول به ما این امکان را می دهد که در یک مرحله چند ردیف را در یک جدول وارد کنیم.

insert into t1

values (1, ‘ONE’, ‘Description for ONE’),

(۲, ‘TWO’, ‘Description for TWO’),

(۳, ‘THREE’, ‘Description for THREE’);

commit;

select * from t1;

ID CODE   DESCRIPTION

———- —— ————————-

۱ ONE    Description for ONE

۲ TWO    Description for TWO

۳ THREE  Description for THREE

SQL>

دستور SELECT:

از همان نوع Table values constructor می توان در عبارت FROM یک دستور SELECT استفاده کرد. توجه داشته باشید که باید نام ستون ها را مستعار کنیم تا به درستی ارائه شوند.

select *

from   (values

(۴, ‘FOUR’, ‘Description for FOUR’),

(۵, ‘FIVE’, ‘Description for FIVE’),

(۶, ‘SIX’, ‘Description for SIX’)

) a (id, code, description);

ID CODE DESCRIPTION

———- —- ——————–

۴ FOUR Description for FOUR

۵ FIVE Description for FIVE

۶ SIX  Description for SIX

SQL>

دستور WITH Clause:

Table values constructor را می توان به عنوان بخشی از یک عبارت WITH استفاده کرد.

with a (id, code, description) AS (

values (7, ‘SEVEN’, ‘Description for SEVEN’),

(۸, ‘EIGHT’, ‘Description for EIGHT’),

(۹, ‘NINE’, ‘Description for NINE’)

)

select * from a;

ID CODE  DESCRIPTION

———- —– ———————

۷ SEVEN Description for SEVEN

۸ EIGHT Description for EIGHT

۹ NINE  Description for NINE

SQL>

دستور MERGE:

Table values constructor می تواند به عنوان داده منبع برای دستور MERGE استفاده شود.

merge into t1 a

using (values

(۴, ‘FOUR’, ‘Description for FOUR’),

(۵, ‘FIVE’, ‘Description for FIVE’),

(۶, ‘SIX’, ‘Description for SIX’)

) b (id, code, description)

on (a.id = b.id)

when matched then

update set a.code        = b.code,

a.description = b.description

when not matched then

insert (a.id, a.code, a.description)

values (b.id, b.code, b.description);

۳ rows merged.

SQL>

select * from t1;

ID CODE   DESCRIPTION

———- —— ————————-

۱ ONE    Description for ONE

۲ TWO    Description for TWO

۳ THREE  Description for THREE

۴ FOUR   Description for FOUR

۵ FIVE   Description for FIVE

۶ SIX    Description for SIX

۶ rows selected.

SQL>

rollback;

برای خدمات پایگاه داده اوراکل با ما در تماس باشید

منبع مقاله

oracle databaseمشاوره اوراکلخدمات نگهداری اوراکلمسعود سلطانی رادآموزش اوراکل
چند سالی هست در حوزه داده ها ( نگهداری و تحلیل آنها) فعالیت دارم و همیشه سعی کردم آموخته هایم رو به اشتراک بگذارم soltanirad@artarad.ir www.artarad.ir
شاید از این پست‌ها خوشتان بیاید