Hirdetés
- sziku69: Szólánc.
- droidic: [Memory Leak] Az agy defragmentálása
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Brogyi: CTEK akkumulátor töltő és másolatai
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- eBay-es kütyük kis pénzért
- Magga: PLEX: multimédia az egész lakásban
- SzDavid99: Barangolás egy ünnepi Nintendo-mekkává változott szöuli bevásárlóközpontban
- lezso6: Nemzetközi újév visszaszámlátor alkoholistáknak
Új hozzászólás Aktív témák
-
-
-
nyunyu
félisten
válasz
RedHarlow
#4904
üzenetére
Fizikailag belefűzni a sorvége karakter(eke)t a stringbe?
desc=desc || chr(13) || chr(10) || 'Adat: 1200'
Feltéve, ha Windows stílusú stringekkel dolgozol, ami CR+LF (\r\n)-rel van terminálva.
Unix/linux vonalon elég lehet a chr(13) (CR, \r), mac esetén a chr(10) (LF, \n) is -
-
-
nyunyu
félisten
válasz
RedHarlow
#4712
üzenetére
Ezt a Teradata féle joinnal bővített UPDATE szintaxist semelyik másik DB kezelő nem ismeri, nem tudsz így másik tábla alapján updatelni.
Oracle elég körülményesen tud hasonlót, SET+WHERE mögé írt alselecttel, de annak a pontos szintaxisára nem emlékszem, de arra igen, hogy amihez nem talál értéket, ott szimplán NULLlal felülírja a többi sort.

Valami ilyesmi lehetett:
UPDATE t1
SET t1.column=(SELECT column FROM t2 WHERE t2.id=t1.id)
WHERE t1.id IN (SELECT id FROM t2);(Teradata csak a joinnal megtalált sorokat updateli, többit békén hagyja!)
Legtisztább megoldás erre a szabványos MERGE utasítás:
MERGE t1
USING (SELECT id,
column
FROM t2) t2
ON (t2.id = t1.id)
WHEN MATCHED
THEN UPDATE SET t1.column = t2.column;Hmm, még alselect se kell az USING mögé, direktben is mehet a t2, ha a joinon kívül nem kell semmi bonyolultat csinálni vele:
MERGE t1
USING t2
ON (t2.id = t1.id)
WHEN MATCHED
THEN UPDATE SET t1.column = t2.column; -
-
rum-cajsz
őstag
válasz
RedHarlow
#4208
üzenetére
ha linuxot használsz, annak van egy nagyon jó ütemezője a cron. Azzal gyakorlatilag bármilyen ütemezést be tudsz állítani. Bár az excel és a mail küldés még külön programot igénylenek.
A szkriptet kell megírnod egyedül, kell egy oracle kliens, amiben sqlplus programot tudod parancssorban használni. pl. ez minden óra 27 perckor lefut
cron bejegyzés:27 * * * * /home/user/sqlscript/napifutas.shnapifutas.sh
ScriptHome="/home/user/sqlscript"PwFile="$PasswdHome/jelszo.txt"secret=UserName/$(< $PwFile)@adatbazissqlplus -s <<EOF$secret@$ScriptHome/sajatscript.sqlEOF -
Louro
őstag
válasz
RedHarlow
#4205
üzenetére
Hogy konkrétabb legyek (TSQL megoldás):
IF DAY(GETDATE()) = 1
BEGIN
--Leválogatás kitétele
EXEC master.dbo.xp_cmdshell 'sqlcmd -S "SERVERNAME" -d ADATBÁZISNÉV -E -o "C:\Windows\System32\passwords.txt" -Q "SELECT * FROM table" -W -w 999 -s";" '--Emailküldés
DECLARE @HTML VARCHAR(2000);SET @HTML = 'Ide azt pakolsz, amit szeretnél' ;
EXEC msdb.dbo.sp_send_dbmail
@recipients = 'címzett@itcafe.hu',
@subject = 'Tárgy',
@file_attachments = N'C:\Windows\System32\passwords.txt',
@body = @HTML,
@body_format = 'HTML';
ENDBeteheted napi futásba is, nem fogja elvinni az erőforrást. Vagy kihagyod az IF-es részt és a Schedule részben megadod, hogy minden hónap első napján fusson le.
Persze igényesebb megoldás lenne SSIS Package-be tenni. De feladat méretétől függ. Az apró lekérdezéseket inkább így oldom meg.
-
Louro
őstag
válasz
RedHarlow
#4205
üzenetére
Környezet? Oracle, SSMS, .... ? Ez eléggé függ attól.
Röviden azt mondanám általánosságban, hogy legyen egy IF elágazás, ahol megmondod, hogy az aktuális nap a hónap első napja, akkor fusson el, különben ugorja át. Majd ezt az egészet egy package-be
Én TSQL-lel is pakolok olykor ki, bár tudom, hogy nagyon retro és inkább SSIS kellene, de lusta vagyok egy exportra package-et készíteni
Új hozzászólás Aktív témák
- Bomba ár! Lenovo X1 Yoga 3rd - i5-8GEN I 8GB I 256GB SSD I 14" FHD Touch I W11 I CAM I Garancia!
- Telefon felvásárlás!! iPhone X/iPhone Xs/iPhone XR/iPhone Xs Max
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone 12 mini 64GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3851
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest
)


