PlusMagi's Blog By Pitt Phunsanit Oracle Database Oracle: การ Query ข้อมูลโดยไม่พิมพ์ชื่อ Schema

Oracle: การ Query ข้อมูลโดยไม่พิมพ์ชื่อ Schema

ปกติถ้าเราจะดึงข้อมูลจาก Schema อื่น เราต้องพิมพ์ SELECT * FROM OTHER_USER.MY_TABLE; แต่ถ้าไม่อยากพิมพ์ชื่อ Schema นำหน้า มี 2 วิธีที่ช่วยได้ครับ


การเปลี่ยน Current Schema

คุณสามารถสั่งให้ Oracle มองว่า Schema หลักของเราคือคนอื่นชั่วคราวได้ครับ

ALTER SESSION SET CURRENT_SCHEMA = ชื่อ_SCHEMA_อื่น; -- หลังจากนี้สามารถ Select ได้เลยโดยไม่ต้องพิมพ์ชื่อ Schema นำหน้า
SELECT * FROM MY_TABLE;

การสร้าง Synonym

หากต้องใช้งาน Table ของ Schema อื่นบ่อย ๆ และไม่อยากพิมพ์ชื่อ Schema นำหน้าตลอดไป ให้สร้าง Synonym ครับ

CREATE SYNONYM MY_TABLE FOR OTHER_USER.MY_TABLE; -- หลังจากนี้เรียกใช้ชื่อ MY_TABLE ได้โดยตรง
SELECT * FROM MY_TABLE;

ข้อควรระวัง

  • สิทธิ์ : แม้คุณจะเปลี่ยน CURRENT_SCHEMA หรือสร้าง SYNONYM แต่ถ้า User ของคุณไม่ได้รับสิทธิ์ SELECT ในตารางนั้น ๆ จากเจ้าของเดิม ก็จะยังเข้าถึงข้อมูลไม่ได้อยู่ดีครับ
  • Table ซ้ำ: หากใน Schema ของคุณมีตารางชื่อ EMP และใน Schema อื่นก็มี EMP การใช้ user_tables จะเห็นเฉพาะของคุณเองเท่านั้น

อ่านเพิ่มเติม

Exit mobile version