วิธีรับชื่อคอลัมน์ทั้งหมดในฐานข้อมูล Oracle

ฐานข้อมูล Oracle จัดตารางเป็นบัญชีเจ้าของที่เรียกว่าสคีมา ผู้ใช้ฐานข้อมูลที่มีสิทธิ์ที่แตกต่างกันสามารถสืบค้นข้อมูลเมตาของฐานข้อมูล ซึ่งเรียกว่า "พจนานุกรมข้อมูล" เพื่อแสดงรายการข้อมูลซึ่งรวมถึงชื่อคอลัมน์ สิทธิ์ของออบเจ็กต์ หรือสถิติของออบเจ็กต์ ในการรับชื่อคอลัมน์จากตารางหรือมุมมองบนเซิร์ฟเวอร์ฐานข้อมูล Oracle ให้รันการสืบค้นแบบสั้นโดยใช้อ็อบเจ็กต์ data-dictionary ที่เหมาะสมที่สุด มุมมอง USER_TAB_COLS แสดงวัตถุที่ผู้ใช้ที่เข้าสู่ระบบเป็นเจ้าของ ในขณะที่ ALL_TAB_COLS แสดงวัตถุทั้งหมดที่มีให้สำหรับผู้ใช้ตามการอนุญาตของเขา และ DBA_TAB_COLS จะแสดงทุกอย่างในฐานข้อมูลโดยไม่คำนึงถึงบัญชีผู้ใช้ที่เป็นเจ้าของวัตถุ

ขั้นตอนที่ 1

ดำเนินการแบบสอบถาม SQL มาตรฐานเพื่อส่งคืนผลลัพธ์จากมุมมองระบบที่เหมาะสมที่สุด แบบสอบถามพื้นฐานปรากฏในแบบฟอร์ม:

เลือก * จาก USER_TAB_COLS;

แทนที่ ALL_TAB_COLS หรือ DBA_TAB_COLS ตามความเหมาะสม สัญลักษณ์ "*" ส่งกลับคอลัมน์ทั้งหมดในแบบสอบถาม

ขั้นตอนที่ 2

จำกัดข้อมูลที่ส่งคืนในคิวรีโดยแทนที่ "select *" ด้วยรายการคอลัมน์ที่ตรงเป้าหมายมากขึ้นจากมุมมองพจนานุกรม หากต้องการส่งคืนเฉพาะสคีมา ชื่อตาราง และชื่อคอลัมน์สำหรับออบเจ็กต์ที่บัญชีที่เข้าสู่ระบบสามารถเข้าถึงได้ ให้ใช้:

เลือกเจ้าของ table_name, column_name จาก ALL_TAB_COLS;

จำกัดวัตถุที่ส่งคืนโดยจำกัดผลลัพธ์ของคุณด้วยประโยค "ที่ไหน" ตัวอย่างเช่น หากต้องการส่งคืนเฉพาะชื่อคอลัมน์สำหรับตารางที่ผู้ใช้เข้าสู่ระบบเป็นเจ้าของและเริ่มต้นด้วยตัวอักษร "A" ให้ใช้:

เลือก * จาก USER_TAB_COLS โดยที่ table_name LIKE 'A%';