[DB2] Export Table Data

IBM DB2

ช่วงนี้ UAT มีอะไรแปลกให้เขียนเยอะครับ อย่างตอนนี้เป็นการใช้ DB2 Export เพื่อ Export ค่า mapping ของระบบ Interface จาก DB ของทีม QA ไปยังที่ Site ลูกค้าครับ เพราะลูกค้าบอกว่า Script ที่ได้ Run ไปที่เครื่อง AIX มันไม่ครับ (มีไม่ครบ ก็ยัดจากเครื่อง QA มาเลย 555) มาดูคำสั่ง Export ดีกว่าครับ รูปแบบคำสั่ง รูปแบบคำสั่งคร่าวๆ เพราะจริงๆมี Option ให้เลือกยิบย่อยมากมายครับ ชนิดของ File ที่ Export ดังนี้ ตัวอย่างคำสั่ง กรณีแบบ .ixf (ขอเน้นการใช้แบบ .ixf เพราะ ใช้ Import ข้าม Version หรือ Platform ได้ โดยไม่มีปัญหาครับ) – ผลการทดสอบครับ กรณีแบบ del สามารถใช้คำสั่งได้ ดังนี้ หมายเหตุ: ถ้าเราอยากไม่ให้ DB2 มันเก็บ log ก็สามารถปรับคำสั่งได้ (ตัดส่วน message และ ชื่อไฟล์ log ออกไป) ดังนี้ Reference

[DB2] LOCK & UNLOCK Table

IBM DB2

บางครั้งเวลาที่เราพัฒนาระบบ เรามีความจำเป็นที่ Lock Table เพื่อบังคับให้มีการ Insert/Update Record ได้ทีละรายการเท่านั้น เพื่อจุดประสงค์บางอย่าง เช่น การ Approve ยืนยันรายการ เป็นต้น โดยรูปแบบของคำสั่ง LOCK มีรูปแบบ ดังนี้ Mode การ Lock มี 2 แบบ ได้แก่ สิ่งที่ควรระวัง เมื่อ Lock ไปแล้ว เราจะ Unlock ได้ 3 วิธี ดังนี้ Reference

[DB2] SQL สำหรับตรวจสอบ Version ของ DB2

IBM DB2

ช่วงนี้ไป UAT บ่อย เริ่มเจอปัญหาแปลกของ Environment ของ Production กับ Environment ที่ใช้ในการ Development ที่บริษัท แตกต่างกัน ทำให้เวลาที่เราฝั่งคำสั่งบางตัว อาจจะเกิดปัญหาขึ้นได้ครับ โดยวันนี้ผมขอแปะ Query สำหรับดู Version และ Fix Pack ของ DB Server ดังนี้ครับ โดยผลลัพธ์ที่ได้ จาก Query มี ดังนี้ครับ

AT Service Protocol Error Code 8 (Interactive Process)

Microsoft Windows

บางครั้งเราอาจจะมีระบบงานเก่าที่ใช้ “AT Service Protocol” พอย้ายมาระบบใหม้เวลาทำงานเจอ Error Message แนวนี้ Error Code 8 (Interactive Process) ครับ สาเหตุ การแก้ไข สุดท้ายนี้ ถ้าใครจะทำระบบงานใหม่ๆที่ต้องมี Schedule แนะนำให้ใช้ตัวนี้ครับ Task Scheduler Managed Wrapper ซึ่งเป็น Third Party ที่ช่วยจัดการเรื่องนี้ครับ ใช้งานได้ง่าย สำหรับผมใช้ทำ App ในการดึงข้อมูลจาก ThaiBMA เพื่อแปลง Format และให้ระบบอื่น Feed ข้อมูลเข้าระบบครับ แต่ถ้าอยากลองไปไล่ Library ของ Microsoft จริงๆ ตามมาดูได้ที่นี่ครับ Task Scheduler นี้ครับ Reference

[DB2] -tvf , -td@ -f คือ อะไร

IBM DB2

จริงๆ บทความนี้ผมดองมานานมาก เพราะเดือนที่แล้ว เดือนกุมภาพันธ์ เดือนแห่งการกุมขมับ เพราะ Project ล่าสุดของออมสินต้องส่ง Software ในส่วนของ Phase1 ภายในเดือนนั้นครับ หลังจากผ่านเข้าสู่ Season 2 เฮ้ยย Phase 2 พอมีเวลาได้หายใจบ้าง เลยจะมาเก็บบทความที่ดองไว้ครับ โดยวันนี้ผมขออธิบายคำสั่งเกี่ยวกับ DB2 คำสั่ง -tvf , -td@ ก่อนครับ เพราะหลายๆคนคงใช้คำสั่งเหล่านี้ โดยหลักการ CPD (Copy and Paster Development  ครับ ฮ่าๆ)  แต่ไม่รู้ว่ามัน คือ อะไร และคำสั่งที่ลองไป มันมีอะไรที่พิเศษ หรือป่าวนะ เจ้าคำสั่ง -tvf , -td@ เป็นคำสั่งที่ใช้ใน DB2 CLP (Command Line Processor) มองง่ายๆว่าเป็น DOS ของ DB2 โดยเอาไว้รันคำสั่งเฉพาะ หรือเป็น SQL ก็ได้นะครับ เพื่อจัดการกับฐานข้อมูล โดยคำสั่งขึ้นต้นด้วย db2 ตามด้วยคำสั่งที่ต้องการ โดยมีรูปแบบ ดังนี้ ตัวอย่างคำสั่งง่ายๆ หลังจากเกริ่นพื้นฐานไปแล้ว มาถึงคิวของคำสั่ง -tvf บ้างนะครับ โดยคำสั่ง -tvf อยู่ในส่วนของ option-flag ครับ Concept ของ option-flag คือ การผสมตัวอักษร ซึ่งแต่ละตัวอักษรมีคุณสมบัติเฉพาะตัวครับ สามารถดูได้จาก Help นะครับ ซึ่งผมได้ Capture มาบางส่วนแล้ว โดยอ้างอิงจาก Version 10.5 นะครับ จาก Option-Flag -tvf สามารถแปลความหมายได้ ดังนี้ครับ สำหรับ -tvf การใช้งานจริงคำสั่งนี้ใช้ เพื่อรัน Script SQL และแสดงผลลัพธ์การ…

เปลี่ยนเช็คเงินคืนภาษี เป็นเงินสด

สำหรับมนุษย์เงินเดือนอย่างเราๆ เมื่อได้เงินเดือนมาสิ่งที่ต้องหักไปมีประกันสังคม สวัสดิการต่างๆ และก็ภาษี โดยันอื่นๆช่างมันไปก่อน เรามาวกกลับมาที่ภาษีดีกว่า สำหรับขั้นตอนการเสียภาษีคำนวณอะไรต่างๆบราๆ ในเว็บอื่นมีหมดและ หรือจะลองคำนวณเล่นๆที่เว็บ WealthMagik-Tax Saving Plan ก็ได้ครับ อันนี้ผมใช้ประจำคำนวณยอด ก่อนจะยื่นภาษีครับ พอยืนภาษีไปแล้ว ถ้าเราเสียเงินเกิน ก็ต้องมานั่งดูที่เว็บนี้ว่าเงินจะมาเมื่อไหร่ 555 หลังจากรอมานานนนนแสนนาน ผมก็ได้เช็คเงินคืนภาษีมานะ เมื่อเราได้เช็คมา เราขึ้นเงินได้ที่ไหนบ้าง จริงถ้าสงสัยอะไร เราสามารถถามพนักงานของแต่ะธนาคารได้ครับ พนักงานน่ารักทุกคน 😀

[DB2] Alter table limitations, DB21034E

IBM DB2

Problem ถ้าหากนำ Script ด้านบนนี้ไปรันบน DB2 ที่มี Version ต่ำกว่า 9.7 พบว่า Script ตัวนี้สามารถรันได้ โดยไม่มีปัญหาครับ แต่ถ้านำ Script นี้ไปรันบน DB2 ที่มี Version สูงกว่านี้ เช่น 10.5 พบว่ามี Error Message ในจุดที่ (4) ดังนี้ครับ DB21034E  The command was processed as an SQL statement because it was not a valid Command Line Processor command.  During SQL processing it returned: SQL20054N  The table “INVS.COMPANYACCOUNT_SECURITY_DETAIL” is in an invalid state for the operation. Reason code=”23″.  SQLSTATE=55019 Root Cause ตอนนี้ลองวกกลับมาหาที่สาเหตุบ้าง ส่วนตัวผมเข้าใจว่าระหว่างการเปลี่ยนแปลง ALTER Table เพื่อแก้ Data Type หรือ ขนาดของ Field รวมถึงการ DROP COLUMN – Multiple ALTER TABLE operations within a single unit of work Certain ALTER TABLE operations, like dropping a…

[DB2] cheat sheet

IBM DB2

DB2 System Commands Command Line Processor Commands Database commands via Command Line Processor (CLP) Schema Table Tablespaces Constraints Sequences Locksize Bufferpools Indexes Functions SYSDUMMY1 commands Runstats