ว่าด้วยการนับแถวข้อมูลใน ORACLE

              การนับแถวข้อมูล (Row Count) ในตารางข้อมูล (Table) บน ORACLE จะใช้คำสั่ง SQL พื้นฐานคือ                             SELECT COUNT(*) FROM table_name;               แต่ในบางครั้งข้อมูลที่ไม่ปกติหรือการเพิ่มพารามิเตอร์ในคำสั่ง COUNT อาจทำให้ได้ผลลัพธ์ที่แตกต่างกันได้ดังตัวอย่าง               จากภาพเป็นการเพิ่มตารางข้อมูล และเพิ่มข้อมูลในลักษณะที่แตกต่างกันคือ เพิ่มข้อมูลที่ไม่ซ้ำกัน เพิ่มข้อมูลซ้ำกัน เพิ่มข้อมูลที่เป็น NULL ทั้งสิ้น 7 rows               เมื่อใช้คำสั่งเรียกดูข้อมูลและนับจำนวนข้อมูลพบว่าข้อมูลถูกแสดงถูกต้อง และสามารถนับได้ 7 rows ถูกต้อง               เมื่อใช้พารามิเตอร์ ALL ในคำสั่ง COUNT จะพบว่าสามารถนับได้ 5 แถว ซึ่งจะหมายถึงการนับเฉพาะแถวที่มีค่าข้อมูล (ยกเว้นแถวที่มี F1 เป็น NULL)               การทำงานโดยใช้คำสั่ง SELECT COUNT( ALL … Read more

การใช้งานหน่วยเวลาใน ORACLE ระดับมิลลิวินาที

              การใช้งานประเภทเวลาใน ORACLE ที่เราใช้งานปกติคือข้อมูลประเภท Date (Data Type=Date) ซึ่งจะเก็บข้อมูลที่มีหน่วยเล็กที่สุดคือ วินาที (second)               การใช้งานระบบที่มีผู้ใช้จำนวนมากพร้อมๆกัน ในบางครั้งหน่วยวินาทีอาจไม่ละเอียดพอ จำเป็นต้องใช้หน่วยเวลาที่เล็กกว่าวินาทีคือมิลลิวินาที (1000 มิลลิวินาที = 1 วินาที) ซึ่งใน ORACLE ได้จัดเตรียมข้อมูลประเภทนี้ไว้ให้คือ Timestamp ซึ่งสามารถใช้งานได้ทั้งการสร้างเป็นคอลัมน์ในตารางข้อมูลหรือเป็นตัวแปรใน PL/SQL ดังตัวอย่าง การใช้งาน Timestamp ใน SQL               จากรูปจะสร้างฟิลด์ประเภท NUMBER, DATE และ TIMESTAMP (ที่ระดับความละเอียด 6 digits) โดยฟิลด์ DATE กำหนด Default Value = SYSDATE และ TIMESTAMP กำหนด Default = SYSTIMESTAMP               เมื่อเพิ่มข้อมูลโดยระบุค่าในฟิลด์ ID … Read more

Migrate จากฐานข้อมูล MySql มายัง Oracle ด้วย Sql Developer

เนื่องจากงานที่รับผิดชอบ จะต้องมีการโอนย้ายข้อมูลจากฐานข้อมูลอื่นๆมายัง Oracle เป็นประจำ พบว่าการย้าย MySql มายัง Oracle นั้นสามารถทำได้ง่ายมาก (อาจเพราะเจ้าของเดียวกัน) โดยมีวิธีดังนี้ 1. ดาวส์โหลดและติดตั้ง Oracle SQL Developer 2. ทำการเชื่อมต่อไปยังฐานข้อมูล Oracle ด้วย User system 3. สร้าง Oracle User สำหรับเก็บข้อมูลจาก MySql และกำหนดสิทธิให้เรียบร้อย 4. ดาวส์โหลดไฟล์ Third Party JDBC Driver สำหรับ My Sql 5. เปิดการใช้งาน Third Party JDBC Driver โดยไปที่ Tools > Preferences > Database > Third Party JDBC Drivers … Read more

[บันทึกกันลืม] วิธีย้ายทั้ง Folder จาก Google Drive ไปยัง Shared Drives ขององค์กร

จากที่ Google Apps for Education หรือ Google Workspace for Education ปัจจุบัน ซึ่งจากเดิม ชูนโยบาย Unlimited Storage มาเป็น 100 GB ต่อ คน และ 100 TB ต่อ องค์กร — เพียงพอ ต่อการใช้งานเพื่อการศึกษาจริง ๆ ถ้าจัดการให้ดี เหตุแห่งการเปลี่ยนแปลง ผมว่า ก็เรา ๆ นี่แหล่ะ ใช้พื้นที่เค้าแบบไม่ใช่เพื่อการศึกษา ต้องยอมรับก่อน แล้วเรามาแก้ไขกัน มีบางคนในองค์กร เอาไปเก็บไฟล์หนัง ไม่เกี่ยวกับการศึกษา จริงหรือไม่ รู้อยู่แก่ใจ, เรื่องนี้ Super Admin ขององค์กรตรวจสอบได้ ด้วย Google Vault จัดการให้เด็ดขาด (Super Admin รายงานได้ ผู้มีอำนาจต้องตัดสินใจ … Read more

[บันทึกกันลืม] แก้ปัญหารัน Shell Script กับมือทุกอย่างสมบูรณ์ แต่พอใช้ cron แล้วพัง

เรา “จำกันมา” ว่า การเขียน Shell Script นั้น ทำด้วยมืออย่างไร ก็เขียนลงไปในไฟล์ แล้วเอา Shell เช่น Bash ไป Run แล้วเอาไปตั้งในไฟล์ /etc/cron.d/mycron ปัญหาคือ บางทีเขียนด้วยภาษา Script เช่น python, R แล้วบางที ก็อยากจะเพิ่มภาษาไทยเข้าไป ตามสูตร ก็ต้องใช้คำสั่ง locale ตรวจสอบ ก็จะพบว่า เป็น UTF-8 สวยงาม เขียนใส่ข้อมูลที่ประมวลผลมา ก็จะได้เป็นภาษาไทยสวยงาม แต่ พอเอาไปใส่ Shell Script ผลออกมาเป็นตัวอักษรบนตัวเลข ซึ่งนั่นคือ UTF-8 HEX code เหตุของปัญหา ก็ลองเอา คำสั่ง locale ไปใส่ใน Shell Script แล้วดูผลในไฟล์พบว่า สรุปคือ locale ตอนใช้ … Read more