[DB2] Alter table limitations, DB21034E

หลายคนอาจจะงง ว่าทำไมผมถึงได้เขียน Blog ตอนนี้นะครับ  ลองมาดู Script ตัวอย่างของผมนะครับ [sql] ALTER TABLE INVEST.COMPANYACCOUNT_SECURITY_DETAIL ALTER COLUMN ACCOUNTNAME SET DATA TYPE VARCHAR(300); –จุดที่ (1) ALTER TABLE INVEST.COMPANYACCOUNT_SECURITY_DETAIL ALTER COLUMN REMARK SET DATA TYPE VARCHAR(300); –จุดที่ (2) ALTER TABLE INVEST.COMPANYACCOUNT_SECURITY_DETAIL ADD COMPANYACCOUNT_ID INTEGER; ALTER TABLE INVEST.COMPANYACCOUNT_SECURITY_DETAIL ADD CONTACT_COMPANY_ID INTEGER; –…. ALTER TABLE INVEST.COMPANYACCOUNT_SECURITY_DETAIL ADD CUSTODIAN_ID INTEGER; ALTER TABLE INVEST.COMPANYACCOUNT_SECURITY_DETAIL ADD BRANCHNAME CHARACTER(100); ALTER TABLE INVEST.COMPANYACCOUNT_SECURITY_DETAIL DROP BANK_ID; –จุดที่ (3) ALTER TABLE INVEST.COMPANYACCOUNT_SECURITY_DETAIL DROP BANKBRANCH_ID; –จุดที่ (4) CALL SYSPROC.ADMIN_CMD( ‘REORG TABLE INVEST.COMPANYACCOUNT_SECURITY_DETAIL’ ); [/sql] ถ้าหากนำ Script ด้านบนนี้ไปรันบน DB2 ที่มี Version ต่ำกว่า 9.7 พบว่า Script ตัวนี้สามารถรันได้ โดยไม่มีปัญหาครับ แต่ถ้านำ Script นี้ไปรันบน DB2 ที่มี Version สูงกว่านี้ เช่น 10.5 พบว่ามี…

[DB2] cheat sheet

IBM DB2

Some useful DB2 commands DB2 System Commands DB2LEVEL — checks version of DB2 installed. DB2ILIST — lists all instances installed DB2CMD — opens a command line processor DB2CC — opens db2 control center DB2LICM -l — gets db2 type. Command Line Processor Commands DB2 LIST NODE DIRECTORY — Lists all nodes DB2 CATALOG TCPIP NODE DB2NODE REMOTE MACHINE215 SERVER 50000 — catalogs node. In this case, node is db2Node on the machine with name machine215. Port is 50000. DB2 LIST DATABASE DIRECTORY — list databases DB2 GET DB CFG FOR SAMPLE — get configuration info for the SAMPLE db. DB2…

[SQL Server] เติม SPACE ให้ Column ใน Fixed Length Text File

Blog ตอนนี้ น่าจะดองมาปีกว่าๆ ตอนทำข้อมูลส่งระบบ PTI โดยจะต้องส่งเป็น Fixed Length Text File และทางเลือกที่ ผมใช้ทำ คือ การเขียน Store Procedure เพื่อส่งข้อมูลให้ Application ไปเขียน Text File ต่อไปครับ โดยก่อนที่ผมมแชร์ประสบการณ์ ผมขอเกริ่นนิดนึงกกันก่อนว่าเจ้า Fixed Length Text File คือ อะไร Fixed Length Text File ที่มีการกำหนดรูปแบบแน่นอนแล้ว ว่าแต่ละ Column มีความยาวได้ไม่เกินกี่ตัวอักษร ถ้าข้อมูลใน Field นั้นๆไม่ครบ ระบบต้องเติม Space ลงไปให้ครบครับ แต่ถ้ามันเกินก็ต้องตัดออกนะครับ เพราะระบบมันจะมองเป็นอีก Field นึงแทน ตัวอย่าง เช่น ต้องการไฟล์ข้อมูลแบบ Fixed Length ที่มีกากำหนดความกว้างของข้อมูล ดังนี้ Column ที่ 1 “Portfolio Code” ความยาวไม่เกิน 30 ตัวอักษร Column ที่ 2 “TX Type” ความยาวไม่เกิน 10 ตัวอักษร Column ที่ 3 “Broker” ความยาวไม่เกิน 15 ตัวอักษร Column ที่ 3 “Security” ความยาวไม่เกิน 15 ตัวอักษร Column ที่ 5 “Unit” ความยาวไม่เกิน 20 ตัวอักษร จาก Spec ข้างต้น ผมเสกไฟล์ตัวอย่างข้อมูล ดังนี้ครับ PORTFOLIO TX TYPE…

[DB2] แปลง default current_timestamp on update current_timestamp ใน MySQL มาเป็น DB2

IBM DB2

วันนี้ผมได้เอา Application ที่ทำด้วย C#, Java บน MySQL ย้ายมาลองกับ Database DB2(DB2 มันกิน Resource เยอะ 555) มาที่เครื่อง Developer กลาง ด้วยความขี้เกียจผมเลย Export Script จากตัว MySQL Workbench ปรากฏว่าระบบ Generate Script แปลกมาให้ ดังนี้ โดยเจ้า DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP คือ ให้ตัว DBMS update ทุกครั้งที่มีการแก้ไขข้อมูลใน ROW นั้นๆ ถึงแม้ว่างานของผม จะไม่ได้ใช้คำสั่งแนวๆนี้ครับ แต่ไหนๆสงสัยแล้ว ผมเลยลองหาข้อมูล  และขอแปะไว้ใน Blog ว่าเวลาแปลงเป็น DB2 ต้องใช้คำสั่ง “GENERATED ALWAYS FOR EACH ROW ON UPDATE AS ROW CHANGE TIMESTAMP” ตามตัวอย่าง ดังนี้ครับ หมายเหตุ: คำสั่ง  “GENERATED ALWAYS FOR EACH ROW ON UPDATE AS ROW CHANGE TIMESTAMP” มีข้อควรระวัง ดังนี้ครับ สำหรับใครที่ต้องการ convert งานบน Database อื่นๆไปใช้งานบน DB2 สามารถอ่านบทความนี้ ที่ผมลอง Convert จาก MS SQL Server ไป ยัง DB2 ประกอบได้ครับ

[WordPress] แก้ไขปัญหา Fix Missing required field Update จาก Theme DW Minion

จาก Blog ตอนที่แล้ว ผมได้เขียนไปเกี่ยวกับการแก้ปัญหาที่เกิดขึ้นจาก “Google Structured Data testing tools” ใน Theme WordPress นะครับ โดยในตอนนี้ผมมานำเสนอวิธีแก้ปัญหากับ Theme WordPress  “DW Minion” ที่ใช้งานบน Blog ของผมครับ ตามขั้นตอน ดังนี้ สุดท้ายนี้ SEO ที่ดี นอกจากการ Promote แล้ว ต้องมีการปรับแก้ไข Code ให้ Support ด้วยนะครับ

[Crystal Report] แก้ปัญหา Can grow แล้วข้อมูลไปซ้อนกับบรรทัดถัดไป

หลายครั้งเวลาเราทำ Report แล้วข้อมูลมันเยอะๆ แต่ลูกค้าต้องการให้ข้อมูลมันแสดงครบ เรามักเลือก Properties “Can Grow” ใน แต่ละ Field แทน เพราว่าถ้าไปปรับขนาด Layout บ่อยๆคงไม่ได้แน่ๆ แต่มันก็มีปัญหาเหมือนกันนะ กับเจ้า Can Grow นี่ ทางแก้ไขของผม คือ การแยกข้อมูลให้มันอยู่คนละ Section ไปเลยครับ เพราะ ตัว Engine มันจัดสรรพื้นที่ตามขนาด Section ที่ให้เป็นหลักครับ หลายๆที่อาจจะงง เดี๋ยวมาดูตัวอย่างกัน ที่ผมเจอจริงกันครับ ปัญหา คือ เส้นคั่น ไม่ขยับตาม Field ที่ Can Grow ครับ วิธีการแก้ไขสามารถปรับแก้ไขได้ ดังนี้

[WordPress] Fix Missing required field entry-title,Update,hCard author จาก Tools “Google Structured Data testing tools”

ช่วงหยุดยาวปีใหม่ ผมได้ทำหลายๆอย่างเกี่ยวกับ Blog ครับ โดยตอนที่จะทำสถิติของ Blog ในปี 2014 บังเอิญไปสังเกตุข้อมูลใน Google Web Master Tools ส่วนของ Search Appearance >> Structured Data แล้วเจอ Error ถึง 203 รายการนี่ มันผิดปกตินะ (แต่ผมดองไว้เกือบปี ถึงมาแก้ไข 555) ก่อนที่เข้าไปถึงวิธีแก้ลองมาำความเข้าใจกับ Structured Data กันก่อนว่ามัน คือ อะไร แล้วเอาไปใช้ทำอะไรกันก่อนครับ เจ้าตัว Structured Data คือ ข้อมูลที่มีโครงสร้างมีรูปแบบ เพื่อบอกให้ Bot ของ Search เก็บข้อมูล และเข้าใจได้ว่าข้อมูลที่ได้โพสไว้เป็น Blog ด้าน IT หรือ Review อาหาร เป็นต้น ถ้าพูดในภาษาไฮโชหน่อยมันเป็นการทำ SEO (Search Engine Optimization) รูปแบบหนึ่งครับ โดย Google ได้กำหนด Schema ไว้แล้วว่าเว็บของเราควรมี Structured Data อะไรบ้าง แต่เราไม่ต้องสนใจมันหรอกว่ามีรายละเอียดอย่างไร ถ้าอยากรู้สามารถเข้าไปใช้ Tools ของ Google ครับ เอาไว้ตรวจสอบว่าอันไหนมันขาดไปครับ เดี๋ยวถ้าอธิบายรายละเอียดแต่ละตัวไปยาวๆแน่ๆครับ ขอเปิดอีก Blog และกัน ถ้าว่างนะ) ย้อนกลับมาที่ WordPress บ้างว่ามี Structured Data หรือไม่ ? คำตอบ คือ มีครับ โดยจะแทรกอยู่ใน Theme ของ WordPress ครับ แต่จะมีข้อมูลครบตามที่ Google กำหนดไว้ หรือไม่ก็อีกเรื่องนึงครับ (ปกติถ้าเป็น Theme…

[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 ตั้งแต่เวอร์ชั่น 10.x เป็นต้นไป เจ้าตัว Control Center  และผองเพื่อนอีกหลายๆตัวได้ถูกเอาออกไป และแทนที่ด้วยเจ้า IBM Data Studio แทนครับ โดยก่อนลงโปรแกรม ผมขอแยกเป็น 3 Step ดังนี้ครับ Download IBM Data Studio, Install IBM Installation Manager และ Install IBM Data Studio (ซึ่งแยกเขียนออกมาเป็นอีกตอนหนึ่งครับ) STEP1: Download IBM Data Studio STEP2: Install IBM Installation Manager ปล. บทความนี้อาจจะเน้นรูปเยอะหน่อยนะครับ เผื่อมือใหม่ หรือชาวต่างชาติเข้ามาดูจะได้กดตามได้ครับ