Die aktuelle Ausgabe des Red Stack Magazins behandelt das Thema Cloud-Native. Begleiten Sie uns auf die Spurensuche ihrer Entwicklung und ihrer Grundlagen. Viel Spaß beim Lesen!
Zum Download
- „Das wichtigste Design-Kriterium ist die Hybrid- und Multi-Cloud-Fähigkeit, die durch die Cloud-Native-Technologien unterstützt wird." Interview mit Dr. Carlo Velten
- Auf den Spuren der nächsten IT-Evolutionsstufe: Entwicklung und Grundlagen von Cloud Native, Benjamin Nothdurft
- Reise in die chinesische Cloud, Jessica Steger
- Ansible und Exadata — Eine perfekte Symbiose? Timo Giese
- Patching Oracle — Was muss ich tun? Martin Bracher
- SQLTXPLAIN — Helfer bei der Performance-Analyse, Stefan Seck
- Autonomous Database, Sebastian Solbach
- Oldies but Goldies — Teil 1, Roger Troller
- Oracle Net 18c — Verschlüsselung ist keine Hexerei, Cornelia Heyde
- Multitenant — Cloning von Datenbanken, Julian Frey
- Sicheres Identifizieren von nicht relevanten Indizes, Peter Ramm
- Eintopf und Trennkost — Datenbanken im Ereignishorizont moderner Software-Entwicklung, Daniel Nelle & Gabriel Nelle
Hier finden Sie im Magazin erwähnte Listings:
Roger Troller
"Oldies but Goldies – Teil 1"
select DEPARTMENT_ID
,extract(year from HIRE_DATE) as HireYear
,round(avg(SALARY),2) as avgSALARY
from EMPLOYEES
where (DEPARTMENT_ID, trunc(HIRE_DATE,'year'))
in (select DEPARTMENT_ID, max(trunc(HIRE_DATE,'year'))
from EMPLOYEES
group by DEPARTMENT_ID
group by DEPARTMENT_ID
,extract(year from HIRE_DATE)
order by DEPARTMENT_ID;
Listing 6: Beispiel für durchschnittliche Saläre des letzten Einstellungsjahrs mit Unterabfrage
---
select DEPARTMENT_ID
,min(extract (year from HIRE_DATE)) AS HireYear
,round(avg(SALARY) keep (dense_rank last
order by extract(year from HIRE_DATE)),2) as AvgSALARY
from EMPLOYEES
group by DEPARTMENT_ID;
DEPARTMENT_ID HIREYEAR AVGSALARY
------------------------ ---------------- ------------------
10 2003 4400
20 2004 6000
30 2002 2500
40 2002 6500
...
Listing 7: Beispiel für durchschnittliche Saläre des letzten Einstellungsjahrs mit KEEP-LAST
---
B2Trace (P_Field || ' := to_date (''' || to_char(P_Date,
'DD.MM.YYYY') || ''', ''DD.MM.YYYY'')');
L_apo varchar2(20) := '''||' || '''''''''' || '||''';
Listing 8: User defined quote operator
---
B2Trace (P_Field || q'{ := to_date ('}' || to_char(P_Date,
'DD.MM.YYYY') || q'{', 'DD.MM.YYYY')}');
L_apo varchar2(20) := q'{'|| q'['']' ||'}';
Listing 9: User defined quote operator
---
SELECT sal
,comm
,round(sal / comm,3) AS sal_factor
FROM emp
/
ORA-01476: divisor is equal to zero
Listing 10: Fehler bei Division durch 0
---
select sal
,comm
,round(case
,when comm = 0 then null
,else sal / comm
end,3) as sal_factor
from emp
/
SAL COMM SAL_FACTOR
----------------------- -------------- ------------------
1600 300 5.333
1250 500 2.5
1250 1400 .893
1500 0
Listing 11: Division durch 0 via CASE verhindert
---
SELECT sal
,comm
,ROUND(sal / NULLIF(comm,0),2) AS sal_factor
FROM scott.emp
/
SAL COMM SAL_FACTOR
----------------------- -------------- ------------------
1600 300 5.333
1250 500 2.5
1250 1400 .893
1500 0
Listing 12: NULLIF, um Division durch 0 zu verhindern
---
…
if l_string is not null then
l_string := l_string || '|';
end if;
l_string := l_string || l_value;
…
Listing 13: Verkettung von Strings, IF, um zu verhindern, dass der String mit einem Pipe beginnt.
---
…
l_string := NULLIF(l_string || '|' , '|') || l_value;
…
Listing 14: Verkettung von Strings, NULLIF, um zu verhindern, dass der String mit einem Komma beginnt.
---