Darbe iš nutolusių įrenginių kelis kartus per valanda surenkam įvairių meteorologinių jutiklių duomenis. Mums ganėtinai svarbu, kad įrenginys veiktų tvarkingai ir visą laiką fiksuotų realią informaciją. Žinoma, visko pasitaiko: lūžta ryšio įrenginiai ar valdikliai, dingsta elektra arba sugenda pavieniai jutikliai. Kaip identifikuoju viso įrenginio veikimą, jau esu rašęs ankščiau poste apie hierarchines SQL užklausas. Su pavienių jutiklių veikimu-neveikimu yra šiek tiek sudėtingesnė situacija. Kartais pasitaiko, kad sugedus vienam ar kitam įrenginio jutikliui, įrenginio valdiklis „užsiciklina” ir kiekvienos tolimesnės iteracijos metu gražina paskutinę iš jutiklio surinktą reikšmę, kas labai iškreipią suvokimą apie įrenginio duomenų kokybę. Skaitykite toliau
Temos Archyvai: Oracle
Hibridinė JasperServer ataskaita iš Oracle ir MS SQL vienu metu
Taip jau buvo, taip nutiko, kad prisireikė vienoje ataskaitoje dinamiškai „sukirsti” Oracle ir MS SQL Server duomenis. Klasikinis variantas šioje situacijoje yra vienos DB duomenų replikavimas/sinchronizavimas į kitą. Toks variantas gal ir yra pats geriausias/patikimiausiais, tačiau jis toli gražu nėra trivialus. Pirmiausia, aš pats nei vienos iš tų DB neadministruoju, todėl nagų kišti į vidų kaip ir negaliu. Antra, abiejų DB duomenų modeliai yra skirtingi, todėl norint gražiai perkelti duomenis, reiktų juos perskaičiuoti ir „pritraukti” iki vienos iš DB struktūros. Kol DBA keiksnodami bando įsivertinti darbų apimtis, nusprendžiau užduotį atlikti Jasper priemonėmis. Tiesa pasakius, kol pats nepabandžiau net nebuvau tikras, ar Jasperis iš vis gali imti duomenis iš kelių skirtingų DB vienu metu, bet tai atrodė visai logiška, nes Jasperis leidžia vienoje ataskaitoje manipuliuoti keliais tos pačios DB Dataset’ais. Jei jau galima kurti skirtingus datasetus, kodėl gi būtų negalima jų kurti iš skirtingų DB šaltinių? Skaitykite toliau
JasperServer date input parameters: kaip nustatyti dar gudresnias „default“ vertes
Seniai rašiau, kaip JasperServer ataskaitoms suprogramuoti standartines (angl. default) ataskaitos parametrų reikšmes. Po to radau, kaip lengvai ir paprastai galima įjungti ir išjungti SQL užklausos where sąlygas. Nusprendžiau kad iš šių dviejų „metodikų” galima sukergti visai neblogą sprendimą automatiniam/rankiniam ataskaitų generavimui… Skaitykite toliau
Dinaminis SQL užklausos „where” sąlygų keitimas
Situacija dažnai sutinkama kasdieniniame darbe. Turim select’ą su daug where sąlygų. Vieną kartą select’ą tenka įvykdyti su vienomis sąlygomis, antrą kartą su kitomis, trečią – su visomis išskyrus vieną ir pan. Jeigu select’as trumpas, bėdos nėra: užkomentuojam nereikalingas eilutes ir tiek. Jeigu select’as yra labai ilgas, su daug join’ų, union’ų ir daug daug kintančių sąlygų, problema pasidaro gan rimta. Galima lengvai susipainioti ar kažką praleisti. Taip pat toks „užkomentavimo” metodas nelabai tinka automatiniam ataskaitų generavimui. Na bet pasirodo yra gan paprastas ir patogus where sąlygų įjungimo/išjungimo būdas. Skaitykite toliau
Išklausiau kursus „Oracle Database 12c: Introduction to SQL Ed 1”
Ilgai delsiau, bet pagaliau išklausiau „Oracle Database 12c: Introduction to SQL Ed 1” (lt. Oracle DB: Įvadas į SQL) 5 dienų trukmės kursus. Nors pavadinimas kaip ir nieko daug nežada, bet kaip savamoksliui programuotojui kursai buvo labai naudingi. Ne tik tuo, kad prisisėmiau daug teorinių žinių ir supratau, kodėl kai kas, ką kažkada bandžiau suprogramuoti, net ir negalėjo veikti, bet ir tuo, kad turėjau labai gerą dėstytoją, kuris peržengdamas kursų gaires atsakinėjo į visus man rūpimus klausimus.
Highly recommended!
Laiko rėžis datos rėžio oracle užklausoje
Laikas nuo laiko tenka ištraukti tam tikrų valandų kelių dienų duomenis, pav. gauti duomenis už praėjusio mėnesio kiekvieną dieną 08:00–09:00 valandomis. Kartais pasitaiko tai įdomesni poreikiai, pav. gauti tam tikro laiko intervalo duomenis tik savaitgaliais arba tik konkrečią dieną (pav. tik antradieniais ir pan.). Užduotis paprasta, bet dėl to, kad tai daryti tenka ne dažnai, vis pamirštu konkrečia sintaksę. Tenka pasikelti senus failus, juose ieškoti konkretaus sprendimo. Taip daryti nusibodo ir nusprendžiau savo naudojamą techniką aprašyti čia. Gal kam nors irgi pravers… Skaitykite toliau
Oracle hierarchinės užklausos su WITH ir CONNECT BY
Darbe iš nutolusių įrenginių kelis kartus per valanda surenkam įvairius duomenis. Kiekviena surinkimo faktą (surinko ar nesurinko duomenis) taip pat fiksuojame ir saugome DB. Kažkada iškilo poreikis grafiškai pasižiūrėti, kaip vis dėl to mūsų įrenginiai veikia, t. y. kaip kokybiškai teikia mums duomenis. Tam pasirašiau paprastą užklausą, kuri tiesiog suskaičiuoja, kiek kiekvieną valandą buvo sėkmingų duomenų surinkimo iteracijų. Kaip ir viskas gerai, tačiau bėda kyla, jei konkrečią valandą nebuvo nei vienos sėkmingos iteracijos. Tada duomenys visai dingsta (žr. nuotrauką viršuje), o norėjosi bent null pamatyti. Skaitykite toliau