วัน: 21 มกราคม 2018

Oracle: การ list table ใน schemaOracle: การ list table ใน schema

สำหรับการ List รายชื่อ Table ใน Oracle จะขึ้นอยู่กับว่าคุณต้องการดู Table ของ ตัวเอง หรือของ Schema อื่น ครับ โดย Oracle จะแบ่ง View ในการเรียกดูข้อมูลออกเป็น 3 ระดับหลัก ๆ ดังนี้ครับ


ดู Table ทั้งหมดใน Database

หากคุณเป็น System Admin และต้องการดูทุกตารางในระบบ ให้ใช้ DBA_TABLES

SELECT owner, table_name FROM dba_tables ORDER BY owner, table_name;

ดู Table ทั้งหมดที่เรา “มีสิทธิ์” เข้าถึง

หากคุณต้องการดูตารางที่ Schema อื่นสร้างไว้ แต่เขาให้สิทธิ์ เราเข้าไปอ่านได้ ให้ใช้ ALL_TABLES

SELECT owner, table_name FROM all_tables WHERE owner = 'ชื่อ_SCHEMA_ที่ต้องการ' -- สำคัญ: ชื่อ Schema ต้องเป็นตัวพิมพ์ใหญ่
ORDER BY owner, table_name;

ดู Table ใน Schema ของตัวเอง

หากคุณ Login เข้ามาแล้วต้องการดูตารางทั้งหมดที่ตัวเองสร้างไว้ ให้ใช้ USER_TABLES

SELECT table_name FROM user_tables ORDER BY table_name;

ข้อควรระวังในการค้นหา Schema ใน Oracle

  1. ตัวพิมพ์ใหญ่ : โดยปกติ Oracle จะเก็บชื่อ Schema และ Table เป็น ตัวพิมพ์ใหญ่ เสมอ หากคุณใส่เงื่อนไข WHERE owner = 'pitt' จะหาไม่เจอ ต้องใช้ WHERE owner = 'PITT' เท่านั้นครับ
  2. ตารางระบบ: ใน ALL_TABLES หรือ DBA_TABLES จะมีตารางของระบบ ปนมาด้วยเยอะมาก หากต้องการดูเฉพาะตารางงานทั่วไป แนะนำให้กรอง Schema ของระบบออก

วิธีการดูผ่านเครื่องมือ GUI

หากคุณใช้โปรแกรมช่วยจัดการฐานข้อมูล

  • DBeaver: ในแถบ Database Navigator ให้ขยายเมนู Schemas > เลือก ชื่อ Schema ที่ต้องการ > ขยายเมนู Tables
  • หมายเหตุ: หากมองไม่เห็น Schema ที่ต้องการ ให้คลิกขวาที่ Connection เลือก Edit Connection > Filters > ดูว่ามีการกรองชื่อ Schema ออกไปหรือไม่ครับ

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