Author: วรพจน์ คงอรุณ

Oracle User expire โดยไม่ทราบสาเหตุ

นักพัฒนาบางท่านที่เพิ่งเริ่มพัฒนาระบบบนฐานข้อมูล Oracle อาจจะเคยเจอปัญหาเมื่อใช้ Oracle ตั้งแต่เวอร์ชัน 11 เป็นต้นไป นั่นคือ เมื่อสร้าง user บน Oracle และใช้งานไปได้ซักระยะอยู่ ๆ user นี้ก็เกิดก็ expire โดยที่ไม่ได้มีใครเข้าแก้ไขการตั้งค่าของ user นี้ ซึ่งเหตุการณ์นี้อาจจะมีสาเหตุแบบเดียวกับที่จะนำเสนอในบทควาามนี้ก็เป็นได้ หมายเหตุ ในบทความนี้จะใช้ Oracle SQL Developer ซึ่งเป็นเครื่องมือในการเข้าถึงและจัดการฐานข้อมูล Oracle มาช่วยในการอธิบายเพื่อให้เห็นภาพได้ง่ายขึ้น ขั้นตอนการตรวจสอบที่มาของปัญหาและการแก้ไข login ด้วย sys ตรวจสอบการตั้งค่า Default Profile โดยเลือกเมนู View –> DBA…

Remote ไปยังเครื่องคอมพิวเตอร์อื่นด้วย Chrome Browser

การใช้งานเทคโนโลยีการทำงานระยะไกลหรือการ remote จากเครื่องคอมพิวเตอร์เครื่องหนึ่งไปยังอีกเครื่อง นับว่ามีความจำเป็นเพิ่มขึ้นมากในปัจจุบัน ซึ่งตัวระบบปฏิบัติการเองก็มีเครื่องมือรองรับ เช่น ใน Windows จะมี Remote Desktop นอกจากนี้ยังมีซอฟต์แวร์ที่รองรับการทำงานลักษณะนี้ เช่น TeamViewer หรือ AnyDesk ซึ่งบางซอฟต์แวร์หากใช้งานในลักษณะฟรี ก็อาจจะมีข้อจำกัดในการใช้งานบ้าง ดังนั้นในบทความนี้จะนำเสนอการใช้งาน remote ผ่าน chrome browser ซึ่งสามารถใช้งานได้ฟรี และค่อนข้างจะรองรับการทำงานทั่ว ๆ ไปได้ โดยไม่จำกัดเรื่องการเข้าใช้งาน (บางซอฟต์แวร์อาจจะมีการจำกัดจำนวนครั้งในการใช้งานในช่วงระยะเวลาหนึ่ง เป็นต้น) เตรียมการเบื้องต้นก่อนการใช้งาน ติดตั้ง chrome browser ทั้งฝั่งเครื่องต้นทางและฝั่งเครื่องปลายทาง เตรียมบัญชีผู้ใช้งานสำหรับ google หรือ google account…

การส่งภาพหน้าจอโทรศัพท์มือถือระบบ Android ไปยัง PC (Windows 10) โดยไม่ต้องติดตั้งโปรแกรมเพิ่ม

ในการนำเสนอข้อมูลจากหน้าจอโทรศัพท์มือถือไปยัง Projector บางครั้งอาจจะต้องมีอุปกรณ์พิเศษในการส่งข้อมูลภาพ แต่มีอีกวิธีง่าย ๆ ที่สามารถทำได้หากมี PC ที่ติดตั้ง Windows 10 นั่นคือ การส่งข้อมูลหน้าจอจากโทรศัพท์มือถือไปยัง PC จากนั้นจึงส่งภาพจากหน้าจอ PC ขึ้นไปยัง Projector อีกต่อหนึ่ง ซึ่งวิธีนี้ผู้นำเสนอก็จะสามารถนำเสนอได้ทั้งข้อมูลจากหน้าจอมือถือ และข้อมูลอื่น ๆ ที่อยู่บน PC ด้วย สำหรับในบทความนี้จะกล่าวถึงวิธีการดังกล่าว โดยจะเป็นการส่งภาพหน้าจอจากโทรศัพท์มือถือระบบ Android ซึ่งเป็นวิธีการที่ไม่ต้องติดตั้งโปรแกรมใด ๆ เพิ่มบนโทรศัพท์มือถือ หรือบน PC สิ่งที่ควรรู้ก่อนการตั้งค่า เนื่องจากวิธีการนี้เป็นการส่งผ่านข้อมูลถึงกันผ่านระบบเครือข่ายไร้สาย หรือ WiFi ดังนั้นทั้งอุปกรณ์ Android และ PC…

คำสั่ง Update โดยใช้ข้อมูลจากอีกตาราง [Oracle]

ในการสั่ง update ข้อมูล ในบางครั้งเราอาจจะเจอโจทย์ว่า ต้องการ update ข้อมูลในตารางหนึ่งโดยใช้ข้อมูลจากอีกตารางหนึ่ง ซึ่งลักษณะของข้อมูลทั้งสองตารางนี้ จะต้องมีฟีลด์ข้อมูลที่สามารถเชื่อมโยงความสัมพันธ์ของข้อมูลแต่ละเร็คคอร์ดได้ ตัวอย่างข้อมูล มีข้อมูลสองตาราง ตารางที่ 1 เก็บข้อมูลวันในหนึ่งสัปดาห์ภาษาไทย [ชื่อตาราง : DAY_OF_WEEK_THAI] โครงสร้างตารางประกอบด้วย ฟีลด์ ID เก็บ ID ของแต่ละเร็คคอร์ด ฟีลด์ DAY_FULL เก็บข้อมูลวันแบบเต็มภาษาไทย ฟีดล์ DAY_SHORT เก็บข้อมูลวันแบบย่อภาษาไทย ข้อมูลในตารางเป็นดังนี้ ตารางที่ 2 เก็บข้อมูลวันในหนึ่งสัปดาห์ภาษาอังกฤษ [ชื่อตาราง : DAY_OF_WEEK] โครงสร้างตารางประกอบด้วย ฟีลด์ ID เก็บ…

คลายข้อสงสัย “ทำไมสแกนบาร์โคดจากเครื่องอ่านแล้วไม่ enter หรือ tab ให้”

ในการพัฒนาระบบที่ต้องมีการอ่านข้อมูลจากเครื่องสแกนบาร์โคดแบบสองมิติ (แบบแท่งหรือแบบเส้น) รูปแบบในการทำงานมักจะเป็นการอ่านข้อมูลจากตัวบาร์โคด จากนั้นตามด้วยอักขระ Enter หรือ Tab เพื่อเป็นการระบุว่าให้ส่งข้อมูลที่อ่านได้จากบาร์โคดให้กับฟังก์ชันใดฟังก์ชันหนึ่งเพื่อนำไปใช้งานต่อ แต่ในบางครั้งอาจจะเคยเจอปัญหาว่าทำไมเมื่อสแกนบาร์โคดแล้วไม่มีการ Enter หรือ Tab โดยอัตโนมัติ ทำให้ต้องกดปุ่ม Enter หรือ Tab เองทุกครั้งจากคีย์บอร์ด หรือต้องปรับแต่ง code เพื่อเพิ่มอักขระ Enter หรือ Tab ต่อหลังข้อมูลที่อ่านได้จากเครื่องสแกนบาร์โคด หนึ่งในแนวทางสำหรับการแก้ปัญหานี้อยู่ที่ตัวคู่มือสำหรับเครื่องสแกนบาร์โคดแต่ละรุ่นนั่นเอง โดยในที่นี้จะยกตัวอย่างกรณีที่เคยพบดังนี้ ตัวอย่างการตั้งค่าเครื่องอ่านบาร์โคด Honeywell รุ่น Xenon Model 1900 หาคู่มือการตั้งค่าตามรุ่น ซึ่งรุ่นนี้ คือ Xenon Model 1900 (ถ้าไม่มีคู่มือที่ให้มาพร้อมกับอุปกรณ์…

ปัญหาการ Debug บางคำสั่งใน .NET Web Project (VS.NET 2013)

ในการพัฒนา web application ด้วย Visual Studio.NET 2013 ผู้พัฒนาบางท่าน อาจจะเคยเจอปัญหาเมื่อ debug ไปถึงบางคำสั่งแล้ว คำสั่งไม่ทำงานตามที่ควรจะเป็น หรือบางครั้งก็ไม่มีการ return ค่าออกมา ทั้ง ๆ ที่ค่าของข้อมูลถูกต้อง ซึ่งหากเจอปัญหานี้แล้ว ให้ลองสังเกตดังต่อไปนี้ เครื่องที่ใช้พัฒนาเป็น Windows 32 bit หรือ 64 bit ตรวจสอบแน่ใจแล้วว่าใช้งานคำสั่งได้ถูกต้อง และข้อมูลที่คำสั่งนี้นำไปประมวลผลมีความถูกต้องแล้ว ถ้าเครื่องที่ใช้เป็น Windows 64 bit ให้ทดลองทำตามดังนี้ คือ ไปที่เมนู TOOLS –> Options จะปรากฏหน้าต่าง…

การเรียกใช้งาน constructor จากอีก constructor ใน C#.NET

constructor คืออะไร constructor ก็คือ ฟังก์ชันที่ถูกเรียกใช้งาน เมื่อ object ถูกสร้างขึ้นมา ซึ่งใน C#.NET  ก็คือฟังก์ชันที่ตั้งชื่อเป็นชื่อเดียวกับชื่อ class นั่นเอง   constructor มีประโยชน์อย่างไร ในการสร้าง object ขึ้นมา บางครั้งต้องมีการระบุค่าเริ่มต้นบางอย่างให้กับ object นั้น ซึ่ง constructor ก็จะเป็นเครื่องมือหนึ่งที่เป็นตัวช่วยบังคับให้ต้องระบุค่าเริ่มต้นนี้ตอนสร้าง object นั่นเอง   ยกตัวอย่าง เช่น class Student { public Student(string studentID) { คำสั่งดึงข้อมูลนักศึกษาด้วย Student ID โดยใช้ข้อมูล Student ID…

การยกเลิก SMS ไม่พึงประสงค์/ SMS กวนใจ

เชื่อว่าหลายท่านคงเคยประสบกับปัญหากวนใจเรื่อง SMS ไม่พึงประสงค์ ที่ส่งมาโดยที่เราไม่ต้องการ และบางครั้ง SMS เหล่านี้ก็ยังคิดค่าบริการ ทั้ง ๆ ที่เราไม่ได้สมัคร หรือบางครั้งอาจจะสมัครโดยไม่ตั้งใจหรือไม่รู้ตัว ดังนั้นในบทความนี้จะเสนอวิธีการหนึ่ง ที่จะช่วยให้เราสามารถยกเลิก SMS กวนใจเหล่านี้ออกไปบางส่วนได้ ถึงแม้จะไม่ทั้งหมด แต่ก็ช่วยบรรเทาความรำคาญลงไปได้บ้าง  โดยช่องทางที่จะแนะนำนี้เป็นการร่วมมือกันระหว่าง กสทช. และผู้ให้บริการเครือข่ายโทรศัพท์เคลื่อนที่ในการให้บริการยกเลิก SMS ดังกล่าว ซึ่งผู้ใช้บริการสามารถทำได้ด้วยตนเอง โดยไม่มีค่าใช้จ่าย ดังนี้ กด *137 แล้วโทรออก ทำตามคำแนะนำจากเสียงตอบรับอัตโนมัติของแต่ละผู้ให้บริการเครือข่ายฯ รอรับ SMS แจ้งยกเลิก   ตัวอย่าง SMS ไม่พึงประสงค์ และ SMS ตอบกลับ  …

ปัญหาการเชื่อมต่อฐานข้อมูล Oracle ไม่ได้ เนื่องจาก Listener

สำหรับผู้ดูแลระบบที่เคยทำงานดูแลฐานข้อมูล Oracle คงเคยเจอกับปัญหาการเชื่อมต่อไปยังฐานข้อมูลไม่ได้ ซึ่งเมื่อไล่เรียงหาสาเหตุแล้ว ก็มีมากมายหลายสาเหตุด้วยกัน เช่น ปัญหาที่ตัวฐานข้อมูลเอง หรือ ปัญหาทางด้านระบบเครือข่าย ฯลฯ ซึ่งในบทความนี้จะเล่าถึงประสบการณ์ที่ได้พบเจอปัญหานี้เช่นกัน โดยสาเหตุนั้นเกี่ยวกับตัว Listener เหตุการณ์ที่เกิดขึ้นช่วงที่พบปัญหา ได้รับแจ้งจากผู้ใช้ว่าไม่สามารถเข้าใช้งานระบบได้  ซึ่งเมื่อได้รับแจ้งจึงทำการตรวจสอบและพบว่าปัญหาเกิดจากการที่ระบบไม่สามารถเชื่อมต่อไปยังฐานข้อมูลที่พัฒนาด้วย Oracle ได้ โดยที่ระบบเครือข่ายยังใช้งานได้ปกติ ดังนั้นสิ่งที่ทำต่อมาคือการตรวจสอบเฉพาะฐานข้อมูลว่าเกิดปัญหาอะไรขึ้น โดยสิ่งที่ทำคือ ทดลองเชื่อมต่อผ่าน SQL Developer ซึ่งเป็นเครื่องมือหนึ่งที่ใช้สำหรับบริหารจัดการฐานข้อมูล Oracle ผลลัพธ์คือ ไม่สามารถเชื่อมต่อได้ โดยมีข้อความแจ้งเตือนว่า socket timeout ทดลองเชื่อมต่อผ่าน Enterprise Manager ซึ่งเป็นเครื่องมือสำหรับบริหารจัดการฐานข้อมูลอีกตัวซึ่งได้ติดตั้งมาพร้อมกับตอนที่สร้างฐานข้อมูล  ซึ่งก็ไม่สามารถเชื่อมต่อได้เช่นกัน และได้ลองสั่ง Startup DB ฐานข้อมูล…