Articles Comments

Oracle DBA & All IT » Database, DBA, DBA, ORA-Error, Oracle Tips, Tuning Performance » Synonyms คืออะไร??

Synonyms คืออะไร??

หลายๆคนอาจจะเคยเจอปัญหาเช่นนี้…

21:13:58 SQL> select * from emp;
select * from emp
              *
ERROR at line 1:
ORA-00942: table or view does not exist

 

และเมื่อลองมาค้นหาสาเหตุกันด้วย query ด้านล่าง
 

21:14:07 SQL> select table_name from user_tables where table_name='EMP';

no rows selected

โอเค Table นี้ของเราไม่มีอยู่นี่เอง คราวนี้มาดู query ด้านล่างบ้าง

21:17:17 SQL> select owner,table_name from dba_tables where table_name='EMP';

OWNER      TABLE_NAME
———- ——————————
SCOTT   EMP

คราวนี้เรารู้แล้วว่า Table นี้อยู่บน owner SCOTT เราก็สามารถที่จะ Query ดูข้อมูลได้แล้ว (ภายได้เงื่อนไขว่าเราต้องมีสิทธิ์บน Table นั้นด้วย)

21:18:25 SQL> select * from scott.emp;

              A
—————
              1
              2
              3

ตอนนี้ถ้าเราต้องการที่จะ Select table emp เราจะต้องทำการ ใส่ owner scott. ข้างหน้าเสมอ ซึ่งยุ่งยากและเสียเวลา เราก็สามารถสร้างชื่อเล่นให้กับ emp ของ scott ได้
โดยการสร้าง synonym เพื่ออ้างถึง table scott.emp

create public synonym emp for scott.emp;

แล้วคราวนี้มาลองเรียกใช้ใหม่ก็จะสามารถเห็น table ของ scott เรียบร้อย

21:20:25 SQL> select * from emp;

              A
—————
              1
              2
              3

ลำดับในการเรียกใช้ synonym

1. ถ้าเรามีชื่อ table เดียวกับของคนอื่นที่ทำเป็น public synonym ไว้ เวลาที่ Query ข้อมูล จะเห็นที่ Object ของเราก่อนเสมอ

2.ถ้าเราไม่มีชื่อ table เดียวกับของคนอื่นที่ทำเป็น public synonym ไว้ แต่มีการสร้าง private synonym ไว้ เวลาที่ Query ข้อมูล จะเห็นที่ Private synonym ของเราก่อนเสมอ

        ตัวอย่างการสร้าง private synonym (เป็นชื่อที่เราใช้ได้คนเดียว คนอื่นไม่มีสิทธิ์)
create synonym salee.test_emp for scott.emp;

เมื่อ connect ด้วย user salee
เมื่อ select * from test_emp; ก็คือการไป select * from scott.emp; นั่นเอง

3.ถ้าเราไม่มี Private synonym วลาที่ Query ข้อมูล ถึงจะไปใช้ Public synonymก่อนเสมอ

เมื่อใดที่เราเบื่อชื่อนี้แล้วเราก็สามารถ drop ทิ้งได้เลย
drop [pulic] synonym emp;

หมายเหตุ 1 object สามารถมีได้หลาย synonym
 

.. Preview : 20103

Related Search:

  • synonyms คือ
  • synonym คืออะไร
  • synonym ตัวอย่าง
  • synonym
  • synonyms คืออะไร
  • synonymคือ
  • ตัวอย่าง synonym
  • synonyms ตัวอย่าง
  • synonym มีอะไรบ้าง
  • synonymsคืออะไร

Written by

บอกเล่าสิ่งที่พบเจอมาในการทำงาน ประสบการณ์การทำงานด้าน DBA ถ่ายทอดกันด้วยภาษาง่ายๆ บ้านๆ " ทุกอย่างไม่อยาก แต่... แค่ตั้งใจไม่พอ ต้องลงมือทำ และทำ GoodLuck " Fanpage: www.facebook.com/DBAor .. "Oracle Database Consultant " ..

Filed under: Database, DBA, DBA, ORA-Error, Oracle Tips, Tuning Performance · Tags: , , , ,