Category DB2

[DB2] User Define Function – SQL Scalar Example

IBM DB2

พอดีมีรุ่นน้องให้สอนการเขียน Function บน DB2 ครับ โดย Function ที่ผมเขียนเป็นแบบ SQL Scalar Function โดยเจ้า SQL Scalar Function เป็น Function ที่คืนค่าผลลัพธ์ มีการคืนผลลัพธ์ออกมาค่าเดียวเสมอ โดยมีรูปแบบข้อมูล เช่น datetime, int, varchar เป็นต้นครับ ตัวอย่าง Scalar Function ที่มีในระบบพวก ABS() ที่ส่งตัวเลข เข้าไป คืนผลลัพธ์ที่ตัวเครื่องหมายแล้ว ออกมาค่าเดียวครับ เช่น ABS(-5) = 5 สำหรับ Function…

[DB2] Grant สิทธิ์ในการใช้งานฐานข้อมูล

IBM DB2

จากบทความที่แล้ว ตรวจสอบ Privileges, Authorities and Authorizations ของฐานข้อมูล น่าจะทำให้ผู้ที่อ่าน Blog ของผมได้เข้าใจอะไรหลายๆอย่างเกี่ยวกับสิทธิของ DB2 แต่การเข้ามาจัดการ Database นั้น เราต้องให้สิทธิ(GRANT) ว่าให้ User ที่ต้องการมีสิทธิในการทำอะไรครับ โดยเรื่องของการ GRANT อันนี้กว้างมากครับ โดยผมขอจะขอยกตัวอย่างจริงที่เกิดขึ้น เมื่อนำ DB ของระบบงานเก่ามาขึ้น เพื่อไล่ Code เดิม และมาสร้างระบบใหม่บน .Net ครับ เมื่อทดสอบ Run ระบบได้แจ้ง Message เตือน ดังนี้ อธิบาย Error Message…

[DB2] ตรวจสอบ Privileges, Authorities and Authorizations ของฐานข้อมูล

IBM DB2

บทความนี้จริงๆ คิดจะเขียนมานานและ แต่ลีมเขียน Draft ไว้ วันนี้พอดีลองเอา DB ของระบบเดิมมาขึ้น เพื่อมา Port ออกมาเป็นระบบใหม่บน .Net แต่ดันติดเรื่องสิทธิ์ใน Database ของระบบเก่า ในเมื่อได้โอกาสอันควรมาแล้ว ก็มาเริ่มอธิบายกันเลยครับ เดี๋ยวลืมไปอีก โดยก่อนที่เรามารู้เรื่องสิทธิ โดยคำว่าสิทธ์เนี่ยเป็นคำกว่าๆครับ เรามารู้จักคำที่เจาะจงไปกว่านี้ ดีกว่าครับ รู้จักสามคำนี้แล้ว สิ่งที่เราต้องรู้ คือ ความสัมพันธ์ของ 3 คำนี้ครับ โดยเราเข้าไปจัดการ Database ได้นี่ ต้องมี user ที่ได้รับการให้อำนาจ(Authorizations) ให้มีสิทธิการในการจัดการ(Privileges) และมีอำนาจในการจัดการ(Authorities) ครับ สำหรับ View (หรือ…

[DB2] Export Table Data

ช่วงนี้ UAT มีอะไรแปลกให้เขียนเยอะครับ อย่างตอนนี้เป็นการใช้ DB2 Export เพื่อ Export ค่า mapping ของระบบ Interface จาก DB ของทีม QA ไปยังที่ Site ลูกค้าครับ เพราะลูกค้าบอกว่า Script ที่ได้ Run ไปที่เครื่อง AIX มันไม่ครับ (มีไม่ครบ ก็ยัดจากเครื่อง QA มาเลย 555) มาดูคำสั่ง Export ดีกว่าครับ รูปแบบคำสั่งคร่าวๆ เพราะจริงๆมี Option ให้เลือกยิบย่อยมากมายครับ export to…

[DB2] LOCK & UNLOCK Table

บางครั้งเวลาที่เราพัฒนาระบบ เรามีความจำเป็นที่ Lock Table เพื่อบังคับให้มีการ Insert/Update Record ได้ทีละรายการเท่านั้น เพื่อจุดประสงค์บางอย่าง เช่น การ Approve ยืนยันรายการ เป็นต้น โดยรูปแบบของคำสั่ง LOCK มีรูปแบบ ดังนี้ Mode การ Lock มี 2 แบบ ได้แก่ IN SHARE MODE คือ Lock ทุกอย่าง แต่ยังสามารถ Read ข้อมูลใน Table ได้ ดังตัวอย่าง [sql]LOCK TABLE INVEST.COMPANY…

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

ช่วงนี้ไป UAT บ่อย เริ่มเจอปัญหาแปลกของ Enviroment ของ Production กับ Enviroment ที่ใช้ในการ Development ที่บริษัท แตกต่างกัน ทำให้เวลาที่เราฝั่งคำสั่งบางตัว อาจจะเกิดปัญหาขึ้นได้ครับ โดยวันนี้ผมขอแปะ Query สำหรับดู Version และ Fix Pack ของ DB Server ดังนี้ครับ [sql] SELECT SERVICE_LEVEL , FIXPACK_NUM FROM TABLE (SYSPROC.ENV_GET_INST_INFO()) AS INSTANCEINFO [/sql] โดยผลลัพธ์ที่ได้ จาก Query…

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

IBM DB2

จริงๆ บทความนี้ผมดองมานานมาก เพราะเดือนที่แล้ว เดือนกุมภาพันธ์ เดือนแห่งการกุมขมับ เพราะ Project ล่าสุดของออมสินต้องส่ง Software ในส่วนของ Phase1 ภายในเดือนนั้นครับ หลังจากผ่านเข้าสู่ Season 2 เฮ้ยย Phase 2 พอมีเวลาได้หายใจบ้าง เลยจะมาเก็บบทความที่ดองไว้ครับ โดยวันนี้ผมขออธิบายคำสั่งเกี่ยวกับ DB2 คำสั่ง -tvf , -td@ ก่อนครับ เพราะหลายๆคนคงใช้คำสั่งเหล่านี้ โดยหลักการ CPD (Copy and Paster Development  ครับ ฮ่าๆ)  แต่ไม่รู้ว่ามัน คือ อะไร และคำสั่งที่ลองไป มันมีอะไรที่พิเศษ หรือป่าวนะ…

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

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

[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 นั้นๆ ถึงแม้ว่างานของผม…