SQL Expression สำหรับหาช่วงเวลาที่ต้องการ

ใครที่เคยสร้าง Materialized View จะทราบว่าต้องมีการกำหนดช่วงเวลาเพื่อให้ Materialized View นั้นทำการ Refresh ข้อมูลเพื่อให้ได้ข้อมูลที่เป็นปัจจุบัน หรือแม้แต่ Job ก็เช่นกันต้องกำหนดช่วงเวลาเพื่อให้ Job ทำงานตามช่วงเวลาที่กำหนด บางคนอาจจะเจอปัญหาว่าไม่รู้ว่าต้องกำหนดอย่างไร เช่น อยากให้ทำงานทุก 8 โมงเช้า หรืออยากให้ทำงานทุกเที่ยงคืน เป็นต้น เพื่อให้ปัญหานั้นหมดไป เรามาทำความเข้าใจเกี่ยวกับช่วงเวลาบน Oracle กันดีกว่า จากที่เราทราบกันว่า 1 วันมี 24 ชั่วโมง 1 ชั่วโมงมี 60 นาที และ 1 นาทีมี 60 วินาที บน Oracle เราสามารถเขียนเป็น Expression ได้ตามตัวอย่างข้างล่างนี้ ช่วงเวลา : Period Expression 1 Expression 2 1 Day 1 1 1 Hour 1/24 1/24 1 Minute 1/(24*60) 1/1440 1 Second 1/(25*60*60) 1/86400 ดังนั้นจาก Expression ข้างต้นเราก็สามารถเขียนช่วงเวลา ด้วย SQL Expression ดังตัวอย่างต่อไปนี้ ช่วงเวลาที่ต้องการ SQL Expression Now sysdate Tomorrow sysdate+1 Yesterday sysdate-1 One hour from now sysdate + 1/24 Ten minutes from now sysdate + 10/1440 Thirty seconds from now sysdate + 30/86400 Tomorrow at 12 Midnight trunc(sysdate+1) Tomorrow at 8 AM trunc(sysdate+1) + 8/24 Yesterday at 10 AM trunc(sysdate-1) + 10/24 Next Monday at 12 Noon next_day(trunc(sysdate),’MONDAY’) + 12/24 คราวนี้เราลองมาเขียนคำสั่งในการ select ข้อมูลตามช่วงเวลาที่ต้องการกันดีกว่าค่ะ ตัวอย่างที่ 1 ต้องการ query ข้อมูลเพื่อหาข้อมูลช่วงเวลาดังนี้ วันเวลาปัจจุบัน, หนึ่งชั่วโมงถัดไปจากปัจจุบัน, พรุ่งนี้ตอนเที่ยงคืน และพรุ่งนี้ตอน 8 โมงเช้า สามารถเขียน query เพื่อให้ได้ช่วงเวลาที่ต้องการได้ดังนี้ค่ะ ผลลัพธ์ที่ได้จาก query ตัวอย่างที่ 1 ตัวอย่างที่ 2 ต้องการ query ข้อมูลเพื่อหาข้อมูลช่วงเวลาดังนี้ วันเวลาปัจจุบัน, สิบนาทีถัดไปจากปัจจุบัน, 30 วินาทีถัดไปจากปัจจุบัน และเวลาเที่ยงของวันศุกร์ถัดไป สามารถเขียน query เพื่อให้ได้ช่วงเวลาที่ต้องการได้ดังนี้ค่ะ ผลลัพธ์ที่ได้จาก query ตัวอย่างที่ 2 จาก 2 ตัวอย่างข้างต้นคิดว่าก็พอจะเป็นแนวทางให้กับทุกท่านได้สามารถกำหนดช่วงเวลาที่ต้องการได้ไม่มากก็น้อย

Read More »

ELK #08 Oracle Audit Trail

ต่อจา ELK #07 – Logstash คราวนี้ มาใช้งานจริง โดยใช้ ELK เพื่อเก็บ Log ของ Oracle Audit Trail Oracle Audit Trail บน Database Server เก็บ Log ในรูปแบบ XML โดยแต่ละ Event จะมี tag <AuditRecord> … </AuditRecord> คุมอยู่ ที่แตกต่างจาก Log ทั่วไปคือ ในแต่ละ Event จะมีเครื่องหมาย CRLF (การขึ้นบรรทัดใหม่) เป็นระยะ ๆ ออกแบบให้ Logstash รับข้อมูล (Input Plugin) จาก TCP Port 5515 ซึ่งต้องใช้ Codec ในการรวบ Multiline ในแต่ละ Event เข้าด้วยกัน โดยหา pattern “<AuditRecord>” เป็นจุดเริ่มต้น ส่วนบรรทัดที่ไม่เจอ Pattern ดังกล่าวนั้นการตั้งค่า negate => “true” เป็นการบอกว่า “ให้ดำเนินการต่อไป” โดยจะเอาบรรทัดที่ตามมาจากนี้ ต่อท้าย ด้วยการตั้งค่า what=> “previous” ในส่วนของ Filter Plugin จะอ่านค่าจาก “message” และ ส่งสิ่งที่ถอดจาก XML ได้ ไปยัง “doc” ในส่วของ Output Plugin จะส่งออกไปยัง ElasticSearch ที่ TCP port 9200 ดัง Configuration ต่อไปนี้ จากนั้น ทาง Oracle Database Server ทำการเปิด Audit Trail แล้วเขียน Log ลงไฟล์ แล้วเขียน Cron เพื่อ Netcat ไฟล์ส่งมาให้ Lostash ที่เปิด Port TCP 5515 ไว้รอรับ ผลที่ได้คือ โดยวิธีนี้ จะเป็นการนำ Log ซึ่งจากเดิมเป็น Text Format นำมาเป็น NoSQL ได้ ซึ่งจะสามารถ Query ข้อมูลได้ง่ายยิ่งขึ้น หวังว่าจะเป็นประโยชน์ครับ

Read More »

Toad : หากันจนเจอ (pass ที่เคย save ไว้)

เคยไหม ที่คุณลืม password ที่คุณเคยเซฟไว้ใน Toad เคยไหม ที่วันนึงคุณต้องการใช้ password เหล่านั้นแต่คุณจำไม่ได้ ดูก็ไม่ได้ เพื่อนก็จำไม่ได้!!! วันนี้เรามีทริกที่จะสามารถดู password ที่เราเคย save ไว้ใน toad ได้ มาดูกันเล้ยยย!!! ขั้นตอน 1 เลือก Schema ใดก็ได้ที่เรา login ได้ มาสักอัน ขั้นตอน 2 เลือกเมนู DB Links และกดปุ่ม สร้าง ขั้นตอน 3 ตั้งชื่อ DB Link (ตั้งอะไรก็ได้เพราะไม่ได้เอาไปใช้จริง) จากนั้นเลือก Database ที่ต้องการทราบ Password สุดท้ายกดปุ่ม “Show SQL” ขั้นตอนสุดท้าย ดูที่บรรทัด identified by “xxx” โดย xxx คือ Password ที่เราต้องการ แค่นี้เองค่ะ หวังว่าคงจะเป็นประโยชน์สำหรับผู้พัฒนาหลาย ๆ ท่านที่ต้องกลับไปต่อฐานข้อมูลดั้งเดิมที่เราเคย save password ไว้แล้วลืมนะคะ 🙂 ออ…Version Toad ที่ใช้คือ 9.6.0.27 นะคะ ไม่แน่ใจว่า Version ที่สูงกว่านี้ยังใช้วิธีนี้ได้อีกรึเปล่า >< แล้วพบกันใหม่ Blog หน้านะคะ ^.^

Read More »

CrystalReport : จัดการกราฟซ่อนแอบ

จากที่ผู้เขียนช่วงนี้ได้มีการทำกราฟใน Crystal Report ทำไปทำมาผลปรากฎว่า กราฟไม่แสดงรูปซะงั้น (ไหงเป็นแบบนี้ได้หว่าาาาาา T T) จึงได้ลองค้นหาข้อมูลและพบว่า ต้องเพิ่ม Config เพิ่มเติมเข้าไปใน ” Web.config “ตาม Code ด้านล่างเลยจ้าาาา ส่วนแรก “System.web” ส่วน “httpHandlers”โดย Version จะต้องเป็น Version Crystal Report ที่เราใช้งานอยู่ อย่าลืมตรวจสอบให้ตรงกันด้วยนะ ส่วนที่สอง “System.webServer” ส่วน “handlers”โดย Version จะต้องเป็น Version Crystal Report ที่เราใช้งานอยู่ อย่าลืมตรวจสอบให้ตรงกันด้วยนะ หวังว่า Blog นี้จะช่วยเหลือท่านที่ประสบปัญหาเดียวกันอยู่นี้ไม่มากก็น้อยนะคะ แล้วพบกันใหม่ Blog หน้าค่าาาาาา 🙂

Read More »