Tag DB2

[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…

[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

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

[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…

[DB2] DB21007E seen when DB2 is accessing a text file

จริงๆ ฺBlog อันนี้เป็นสาเหตุของ Blog นี้ครับ [PowerShell] Convert Unicode Text or SQL File To ASCII โดยสาเหตุของ Error Message นี้เกิดจากตัว line termination (ตัวบอกการขึ้นบรรทัดใหม่) ไม่ได้ใช้ตามมาตรฐาน ANSI ซึ่งจะใช้ (Carriage Return, ตัวย่อ CR, ASCII Code =13) เมื่อเรานำไฟล์จาก Windows ไปใช้งานบน Unix หรือ Linux นะครับ โดยการแก้ไขนั้นง่ายนิดเดียวครับ แก้ที่ทาง Windows โดยเวลา save…

[DB2] WORKING WITH ISOLATION LEVEL

IBM DB2

ดองไว้นานมาสำหรับ Blog นี้ 555 เพราะตอนแรกได้ทำ Research เพิ่มคิวการทำงาน โดยใช้ Database เป็นตัวเก็บคิว ซึ่งปัญหาที่จะพบ คือ เราต้องควบคุมการดึงข้อมูลใน Step ต่างๆ เพื่อไม่ให้เกิดปัญหาหลุคคิวได้ โดยทางฝั่ง SQL Server มีคำสั่งใช้งานตรงตัวอยู่แล้ว อาจจะมีฟีเจอร์เพิ่มขึ้นมาจากที่กำหนดไว้ใน ANSI บ้าง ซึ่งผมมาเขียนสรุปใน Blog ถัดไปครับ คราวนี้เรามาลองดูที่พระเอกของเราบ้าง อย่าง DB2 เนี่ย ว่าเราใช้งาน ISOLATION LEVEL กันอย่างไรครับ ก่อนอื่น ผมขอสรุปเรื่อง ISOLATION LEVEL แบบรวบรัดสุดๆก่อนนะ ว่ามันมีอะไรบ้าง…

[PowerShell] Convert Unicode Text or SQL File To ASCII

powershell

สำหรับที่มาของ Script ชุดนี้นี่ทำ Team วุ่นวายเลย เรื่องก็มีอยู่ว่าเวลาพัฒนาระบบต่างๆมันมีในส่วนของ Source Code และ SQL Script ซึ่งต้องนำไป Run ใน Enviromemt ของ Test, Dev หรือ Production ก็ตาม แต่เพราะความสะเพร่าของผมเองที่ Save File Script เป็นแบบ Unicode เกิดปัญหาขึ้นเมื่อนำไป Run บน Database Server DB2 บนเครือง AIX จะเกิด Error Message ดังนี้ Error…

[DB2] SELECT TOP(1) IN DB2

จริงๆวางโครงบทความนี้มานานและ แต่เพิ่มจะมีโอกาศได้เขียนจริงๆจังๆ ซะที เข้าที่ปัญหาเลย คือ ว่าเราต้องการ Query เพื่อดึงข้อมูลในแถวแรกขึ้นมาก หากเป็น MySQL, MS SQL Server เราสามารถใช้คำสั่ง TOP(จำนวนแถวที่ต้องการได้เลย) แต่ถ้าเป็น DB2 จะมีคำสั่ง (ใช้ได้กับ DB2 8.1 ขึ้นไป) โดยเพิ่มเข้าไป ดังนี้ครับ FETCH FIRST 1 ROW ONLY [sql] — FIRST SINGLE ROWS SELECT * FROM <TABLE_NAME> FETCH FIRST…

ข้อควรสังเกตุ และระวังในการ Migrate ข้อมูลจาก Microsoft SQL Server ไป IBM DB2

หลายคนๆ คงอ่านหัวข้อแล้ว อาจจะงง 55 เพราะว่าส่วนใหญ่มีแต่การ Migrate ข้อมูลจาก IBM DB2 ไป Microsoft SQL Server กัน แต่นี่ คือ Require ของลูกค้า (ลูกค้า คือ พระเจ้า) โดยผมขอสรุป สิ่งที่ต้องสังเกตุ และระวังในการย้ายข้อมูลจาก Microsoft SQL Server ไป IBM DB2 ซึ่งจะส่งผลให้ Application ที่กำลังพัฒนาอยู่เกิดผิดพลาดได้ ดังนี้ ข้อมูลประเภท Datatime ใน Microsoft SQL Server เมื่อย้ายข้อมูลมาใน IBM…