ใน Oracle Database การแสดงรายชื่อ Schema ทั้งหมดสามารถทำได้ผ่าน View มาตรฐานของระบบ โดยคุณต้องเลือกใช้ View ให้เหมาะสมกับ ระดับสิทธิ์ ของ User ที่คุณกำลัง Login อยู่ครับ
ลองเลือกใช้คำสั่งตามสถานการณ์เหล่านี้ดูครับ
ดู Schema ทั้งหมดในระบบ
หากคุณต้องการเห็นทุก Schema ที่มีอยู่ในฐานข้อมูลนั้น ๆ ให้ใช้ View all_users หรือ dba_users
SELECT username, created FROM all_users ORDER BY username
ข้อควรจำ: ใน Oracle 1 User = 1 Schema ดังนั้นการ List รายชื่อ User ก็คือการ List รายชื่อ Schema นั่นเองครับ
ดูเฉพาะ Schema ที่เรามีสิทธิ์เข้าไปใช้งานได้
คำสั่งนี้จะกรองเอาเฉพาะ Schema ที่ User ปัจจุบันของคุณมีสิทธิ์ไปอ่านหรือเขียน Object ข้างในได้
SELECT username FROM all_users WHERE common = 'NO' -- สำหรับตัด User ระบบออก (ในเวอร์ชัน 12c ขึ้นไป) ORDER BY username
ดู Schema ที่เราเป็นเจ้าของเอง
หากอยากรู้ว่าตอนนี้เรากำลังทำงานอยู่ภายใต้ Schema ชื่ออะไร
SELECT sys_context ('userenv', 'current_schema') FROM dual
ข้อแนะนำเพิ่มเติมสำหรับเครื่องมือ GUI
หากคุณใช้เครื่องมืออย่าง DBeaver หรือ SQL Developer แล้วมองไม่เห็น Schema ในแถบเมนูด้านซ้าย
- DBeaver: ให้คลิกขวาที่ชื่อ Connection > Connection View > เลือกเป็น Advanced หรือตรวจสอบในส่วนของ Filters ว่ามีการซ่อน Schema ไว้หรือไม่
- การแยกแยะ System Schema: โดยปกติ Oracle จะมี Schema มาตรฐานอย่าง
SYS,SYSTEM,OUTLN,DBSNMPติดมาด้วยเสมอ ถ้าคุณสร้าง Schema เองใหม่ ปกติจะขึ้นเป็นชื่อตัวพิมพ์ใหญ่ครับ
อ่านเพิ่มเติม