Category DB2

[DB2] Toad กับการแสดงข้อมูลประเภท CLOB ในผลลัพธ์ที่ได้จากการ SELECT

ก่อนอื่นที่เราจะมาดูพวก Setting ใน TOAD กัน เราต้องรู้ก่อนนะครับว่า CLOB คือ Character Large Object แปลตรงตัวเลยครับ เป็นชนิดช้อมูลที่เก็บตัวอักษรเยอะๆมากๆครับของ DB2 ถ้าใน SQL Server จะเป็น Type Text ครับ เนื่องจากข้อมูลมันใหญ่มากๆครับ ตัว Toad เลยจึงไม่สนใจ Field ประเภทนี้ เมื่อเราได้ SELECT ข้อมูลครับ และเพิ่มความเร็วใจการทำงานของ Toad ด้วยครับ โดยแสดงเป็นคำว่า (Excluded)  ดังรูป สำหรับการเปิดโปรแกรม Toad แสดงข้อมูลประเภท CLOB…

[DB2] SQL1159 Initialization error with DB2 .NET Data Provider / SQLSTATE IM004, Error Reason Code 10

black and white piano keys

พอดี Application ที่ทำตัวเป็นลูกครึ่งผมระหว่างระบบเก่า และใหม่ จึงมีการเชื่อมต่อเข้ากับ DB2 2 แบบ ได้แก่ ODBC และ DB2 .NET Data Provider และพบ Error ดังนี้ สำหรับตัว ODBC มีรูปแบบ Error ดังนี้ รูปแบบ Error สำหรับตัว ODBC การแก้ไข: ให้ไปเพิ่มสิทธิของ User ที่ใช้งาน Application ให้อยู่ในกลุ่ม DB2ADMNS หรือ DB2USERS ครับ สำหรับตัว DB2 .NET…

[DB2] เรียง ID ของแถวตามเงื่อนไขด้วย Function ROW_NUMBER()

จริงๆช่วงนี้มีอะไรให้เขียน Blog ได้หลายตอนครับ แต่เวลา และปริมาณงานนี่สิไม่เคยพอ เข้าเรื่องเลยดีกว่า ตอนนี้ผมมีหน้าจอนึง ซึ่งแต่ละแถวใน Grid จะมี Column ซ่อนไว้ ชื่อ “SEQNO” เอาไว้เป็น Key คู่กับ Column “COMPANYID” เพื่อเอาไปใช้อ้างอิงในหน้าจออื่นๆที่เรียกใช้งาน ตอนแรกดูเหมือนว่า IDEA นี้น่าจะดี   แต่มันมีสิ่งที่ผิดพลาดเรื่องนึงครับ คือ Column “SEQNO” แทนที่มันจะ Auto Increment มันดันเอา Mx + 1 ครับ มันเลยเกิดปัญหาที่ว่า ถ้า User มีข้อมูลใน Grid 4…

[DB2] Auto Increment

ดอง Blog ไว้นาน เนื่องจากถึงโค้งสุดท้ายของ Project Treasury ที่ได้ทำกับทางออมสินแล้ว วันนี้ขอเขียนต่อให้เสร็จเลยและกัน จะได้ไปเก็บตัว DataSet ต่อ สำหรับคนที่ใช้งาน DB2 อาจจะสงสัยว่ามันมี Auto Increment แบบ MySQL หรือป่าวครับ คำตอบมีครับ โดยสามารถกำหนดเพิ่ม ดังนี้ครับ GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) โดยคำสั่งข้างต้น คือ การกำหนดให้ระบบสร้างตัวเลขที่ UNIQUE(IDENTITY) ทุกครั้ง โดยให้เริ่มจาก 1 และเพิ่มขึ้นที่ละ…

[DB2] BAT Script สำหรับ Restore DB

IBM DB2

ช่วงนี้มี UAT และต้องการนำ DB จาก SITE งานมาขึ้นที่ Environment ของบริษัทครับ โดยผมได้เขียนโครง BAT Script ง่ายๆ และก็ให้พี่ที่ทำงานปรับปรุงต่อนิดหน่อย โดยมีสาระสำคัญ ดังนี้ ขั้นแรก โครงสร้างโฟลเดอร์ทีมี WAITING เอาไว้ใส่ไฟล์ DB ในรูปแบบ Zip ไฟล์ โดยข้างในมีไฟล์ Script ที่จำเป็นในการสร้างฐานข้อมูล และมีโฟลเดอร์ย่อย DBDATA ที่เก็บข้อมูล Back ของฐานข้อมูลในรูปแบบ .ixf ที่ Export มาจากเครื่อง AS400 ARCHIVE เอาไว้เก็บไฟล์ .Zip Restore เข้า…

[DB2] SQL1035N The operation failed because the specified database cannot be connected to in the mode requested. SQLSTATE=57019

IBM DB2

ช่วงนี้ต้องเอา DB จาก Site มาทดสอบที่บริษัททุกวันครับ ผมเลยทำ Bat ไว้ และก็ตั้ง Schedule ไว้ครับ โดยมีคำสั่งในส่วนของการ DROP & CREATE DATABASE ใหม่ ดังนี้ครับ เมื่อ Schedule Run ผลปรากฏว่าที่คำสั่ง DROP DATABASE มี Message แจ้งเตือน ดังนี้ครับ SQL1035N  The operation failed because the specified database cannot be  connected to…

[DB2] User Define Function – SQL Scalar Example

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

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

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

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

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

[DB2] Export Table Data

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