Category DB2

[DB2] Compare Database, Schema หรือ Table ด้วย IBM Data Studio

IBM DB2

หลายๆครั้งที่เราทำงานต้องมีการจัดเก็บ Script ที่แก้ไข Table เอาไว้ อย่างกรณีที่เคสที่ QA ทดสอบ App แล้วเกิดปัญหาขึ้น โดยไม่พบว่ามี Column ในระบบ ผมเลยใช้วิธี Compare Table ที่มีปัญหาว่า Column ไม่ครบ ด้วย Tools IBM Data Studio(ปางหนึ่งของ Eclipse) ครับ โดยมีวิธีการ ดังนี้ (ผมของ COmpare Table นะ ถ้าทั้ง Schema คอมคงค้างไปก่อน เพราะมีเกือบ 600 Table  

[DB2] Install IBM Data Studio

IBM DB2

หลังจาก Blog ตอนที่แล้วได้เกริ่นนำ และเตรียมการลง IBM Data Studio แล้วตอนนี้ผมมาแนะนำการลง IBM Data Studio แบบ Step by step กันครับ STEP3 Install IBM Data Studio จบไปอีกบทความสำหรับการลง IBM Data Studio ครับ Blog ครั้งหน้าคิดว่า น่าจะเป็น Tip เล็กๆในการใช้ IBM Data Studio ครับ

[DB2] เตรียมตัวก่อนลง IBM Data Studio

IBM DB2

ก่อนอื่นที่เล่าถึงวิธีการลงโปรแกรมกัน ผมขอเล่าที่มาของเจ้าโปรแกรม IBM Data Studio มันมีถูกสร้างมา เพื่อทำหน้าที่ในการจัดการ DBMS แบบตัว Control Center แหละครับ แต่มีความสามารถเพิ่มเติมขึ้นมา ได้แก่ การสร้าง Data Model, การสร้าง ER-Diagram และตัว Wizard ในการ Tuning Database เป็นต้น โดยเจ้า IBM Data Studio ถ้าหลายๆคนเห็นหน้าจอแล้วอาจจะร้องว้าวววว เพราะ มันเป็นร่างอวตารอีกร่างหนึ่งของ Eclipse แหละครับ แต่มันดูดีกว่าเจ้า Control Center ที่มันทำงานได้ช้า แม้ว่าเครื่องจะแรงก็ตาม จนท้ายที่สุดใน DB2…

[SQL] Multiplication Aggregate (คูณ Column เดียวกัน)

หลายคนอาจจะสงสัยว่า SQL มันก็นำมาคูณได้อยู่แล้วนี่ เอา Column A x Column B ก็จบ แต่ถ้าผมเปลี่ยนโจทย์หละลองทำการคูณในเหมือน Function SUM ใน SQL นะครับ ทวนความรู้กันก่อน Function SUM ของ SQL คือ การหาผลรวมของข้อมูลใน Column เดียวกัน ถ้าเราทำ Function MUL หรือ MULTIPLY ใน SQL คือ การหาผลคูณของข้อมูลใน Column เดียวกัน เมื่อเข้าใจ Concept แล้วไปลองทำ ผมค้นพบความโหดร้าย…

[DB2] BEGIN VS BEGIN ATOMIC

ตอนแรกก็ไม่ได้เอ๊ะในอะไร คิดว่าเป็นเพียงแค่ชื่อ ธรรมดา แต่พอแก้ชื่อ Error เลย ผมเลยลองหาข้อแต่ต่างของ BEGIN ATOMIC ว่าต่างกับเจ้า BEGIN ธรรมดาอย่างไร โดยคำสั่ง BEGIN ATOMIC มีการจัดการ Transaction เ้สริมเข้ามา ถ้าคำสั่งภายใต้ BEGIN ATOMIC … END นั้นเกิดปัญหาขึ้น DBMS จะ ROLLBACK ข้อมูลกลับทั้งหมดครับ ตัวอย่างการใช้งาน เช่น [sql] –Insert System User BEGIN ATOMIC DECLARE CREATETIME TIMESTAMP; SET…

[DB2] SQL0668N Operation not allowed for reason code 7 on table

IBM DB2

วันนี้ผมนั่งทำงานเขียน Code เขียน Query อย่างเบลอๆ พอลองมา Test Program ปุบ เจอ Error Message แจ้งเตือน ดังรูป โดยเจ้า Error Message นี้ เป็นการบอกว่า Table ของเราอยู่สถานะ Pending รอการ REORG TABLE (สำหรับคนที่ส่งสัยว่า REORG คือ อะไร ให้ตามไปอ่านกันครับ) ซึ่งมีสาเหตุ มาจากการที่ผมไปแก้ Datatype ของ Column ‘USERDESC’ ใน Table จาก varchar(30)…

[DB2] การเพิ่ม Database Connection ใน Toad for DB2

IBM DB2

ถ้าคนที่เคยใช้ DB2 มา จะพบว่าตัว Database Manager ที่ใช้ในการจัดการ Query ต่างๆ มันช้า และไม่มี Feature ที่ช่วย User ได้ดีอย่างทางฝั่ง SQL Server และ Oracle และหลายๆคนก็น่าเคยใช้ Tools ตัวนึงที่ชื่อว่า Toad for DB2  กัน โดยวันนี้ผมมาแนะนำวิธีการ Setup DB Connection ครับ กรณีที่โปรแกรม ไม่สามารถไปดึงข้อมูลจาก ODBC ที่ตั้งไว้ครับ

[DB2] SQL0964C Transaction log for database is full

น่าจะเป็น Blog แรกของเดือนนี้มั้งที่ได้ Public พอดีช่วงนี้งานเยอะ เลยไม่ได้มาเขียนบ่อยๆ เขาเรื่องเลยและกัน คือ งานชิ้นปัจจุบันของผมใช้งาน Database DB2 ของ IBM ใช้ไปใช้มาพอถึงวันนึง จะ Delete ข้อมูลเท่านั้นแหละ ระบบได้แจ้ง Message เตือนขึ้นมา ดังรูป ก่อนจะเข้าเรืองกัน เราควรจะมีรู้เรื่องก่อนว่าเจ้า Transaction log คือ อะไร โดยตัว Transaction log มัน คือ บันทึกการทำงานของ Database เราทุกอย่างตั้งแต่ INSERT, UPDATE, DELETE หรือจะเป็นการแก้ไขโครงสร้างข้อมูลครับข้อมูล Log…

[DB2] CALL SYSPROC.ADMIN_CMD( ‘REORG TABLE xxxx’ ) ?

IBM DB2

ทำงานเกี่ยวกับ DB2 จริงๆจังๆซักพักใหญ่แล้ว เคยสงสัยไหมว่าเวลาทำ SQL Script เราจะเจอคำสั่งชุดนึงที่มักจะอยู่ในลำดับท้ายๆ ของไฟล์ SQL Script นั้น คือ แล้ววันนี้เป็นโอกาสอันที่ ที่ผมมีเวลาว่าง เพราะเป็นวันหยุด 555 เดี๋ยวผมมาอธิบายกันว่าเจ้าคำสั่ง CALL SYSPROC.ADMIN_CMD( ‘REORG TABLE xxxx’ ) มันมันมีไว้ทำอะไรกัน ?โดยเราจะมองที่ละส่วนกัน เผื่อคนที่ยังไม่รู้ครับ ส่วนที่ 1: CALL SYSPROC.ADMIN_CMD คือ การเรียกใช้ Store procedure ของระบบ ซึ่งอยู่ใน Schema SYSPROC โดยเจ้า ADMIN_CMD…