SELECT ud.name view_name,
ud.referenced_name based_table,
vcols.column_name,
NVL (tcom.comments, vcom.comments) comments
FROM all_dependencies ud,
all_tab_columns vcols,
all_tab_columns tcols,
all_col_comments tcom,
all_col_comments vcom
WHERE ud.referenced_name = tcom.table_name
AND ud.name = vcom.table_name
AND vcols.table_name = ud.name
AND vcols.owner = ud.owner
AND vcols.column_name = vcom.column_name
AND vcols.column_name = tcols.column_name
AND tcols.owner = ud.owner
AND tcols.table_name = ud.referenced_name
AND tcols.column_name = tcom.column_name
AND vcom.owner = ud.owner
AND tcom.owner = ud.owner
AND ud.name = 'V_MAJOR_FOR_API'
AND ud.TYPE = 'VIEW'
AND ud.referenced_type IN ('TABLE', 'VIEW')
AND tcom.comments IS NOT NULL;
ผลลัพธ์จาก sql query ข้างบน
ขั้นตอนที่ 2 จัดทำ format sql script เพื่อสร้าง comment ของ column view ตามรูปแบบ “COMMENT ON COLUMN V_MAJOR_FOR_API .MAJOR_TYPE IS ‘รหัสประเภท’;“ โดยเขียน sql script จากข้างบนมาจัดการต่อ
SELECT 'COMMENT ON COLUMN '
|| ud.name
|| '.'
|| vcols.column_name
|| ' IS '''
|| NVL (tcom.comments, vcom.comments)
|| ''';' comments
FROM all_dependencies ud,
all_tab_columns vcols,
all_tab_columns tcols,
all_col_comments tcom,
all_col_comments vcom
WHERE ud.referenced_name = tcom.table_name
AND ud.name = vcom.table_name
AND vcols.table_name = ud.name
AND vcols.owner = ud.owner
AND vcols.column_name = vcom.column_name
AND vcols.column_name = tcols.column_name
AND tcols.owner = ud.owner
AND tcols.table_name = ud.referenced_name
AND tcols.column_name = tcom.column_name
AND vcom.owner = ud.owner
AND tcom.owner = ud.owner
AND ud.name = 'V_MAJOR_FOR_API'
AND ud.TYPE = 'VIEW'
AND ud.referenced_type IN ('TABLE', 'VIEW')
AND tcom.comments IS NOT NULL;
วิธีการหาข้อมูลที่ซ้ำซ้อนเราสามารถหาได้หลายวิธีแต่วันนี้จะขอนำเสนอการประยุกต์ใช้ฟังก์ชัน LAG เพื่อหาข้อมูลที่ซ้ำซ้อนกันค่ะ ตามคำอธิบายข้างต้น LAG Function เป็นฟังก์ชันที่ให้เราสามารถเข้าถึงแถวข้อมูลก่อนแถวปัจจุบันได้โดยที่ไม่ต้องทำการ self-join ดังนั้นเราก็จะประยุกต์ใช้ความสามารถนี้ในการหาข้อมูลที่ซ้ำซ้อนก้นโดยมีขั้นตอนด้งนี้
ใช้ฟังก์ชัน LAG ในการดึงค่าข้อมูล PLO_DESC ก่อนหน้า ของ PLAN_REPORT_ID ปัจจุบัน
สวัสดีผู้อ่านทุกท่าน Blog ที่ 2 ของ TOR รอบนี้จะขอว่าด้วยเรื่องของ ER Diagram กันค่ะ การจัดทำ ER Diagram โดยปกติเราสามารถทำได้หลากหลายวิธี ใช้งานได้มากมายหลากหลายเครื่องมือ ก็แล้วแต่แหละเนอะ ว่าใครถนัดแบบไหน ใช้เครื่องมือใด
สำหรับทางผู้เขียนจะคลุกคลีตีโมงอยู่กับ Toad for Oracle เป็นหลัก ครั้งนี้เลยจะมาขอแชร์วิธีการเล็กๆ น้อยๆ ซึ่งมีความสะดวกสบายในการสร้าง ER Diagram จากข้อมูลตารางที่อยู่ในฐานข้อมูลของเราโดยอัตโนมัตินั่นเอ๊งงงง !!!
ปะ …. เรามาเริ่มกันเลยละกัน
เมื่อเราเปิด Toad for Oracle และ Connect เข้า Database ที่เราต้องการเรียบร้อยแล้ว เราก็จะได้หน้าจอตามรูป ปล…หน้าตาอาจจะต่างกันเล็กน้อยแล้วแต่ version ของแต่ละคนที่ใช้งาน
เมื่อติดตั้ง Oracle Database Gateway เสร็จแล้ว ขั้นตอนต่อมาคือการสร้าง database link บนฐานข้อมูล Oracle เพื่อทำการเรียกดูข้อมูลบน MS SQL Server ผ่านทาง database link ที่สร้างขึ้นมา
รูปแบบคำสั่งในการสร้าง Database Link เป็นดังนี้
CREATE PUBLIC DATABASE LINK DBLinkName
CONNECT TO sa IDENTIFIED BY password
USING ‘dg4msql’;
DbLinkName คือ ชื่อของ database link
sa คือชื่อของ user บน MS SQL Server (อาจจะเป็น user อื่นก็ได้)
password คือ รหัสผ่านสำหรับ user บนฐานข้อมูล MS SQL Server
5. การเรียกดูข้อมูล สามารถเรียกดูข้อมูลผ่าน database link ที่สร้างขึ้นโดยใช้คำสั่ง sql เช่น