Unable to open file: /var/www/limespacede/httpdocs/wp-content/plugins/tp_this_path Oracle » Tag » LimeSpace - IT
Mrz
3.

Oracle und das Date Format

Tja was ist so besonders an Oracle und dem Date Format für eine Spalte in einer Tabelle?

Ganz einfach, man steht mindestens 1x im Jahr vor dem Problem: Wie mache ich eine Abfrage nach Datum.

SELECT * FROM MYTABLE WHERE DATE = '01-MAR-10'

Würde selbst wenn es Datensätze mit diesem Datum gibt zu keinem Ergebnis führen. Warum ist das ganze so? Relativ einfach. Neben dem Datum befindet sich in diesem Feld auch die Uhrzeit (man sieht sie nur nicht). Möchte man nun alle Datensätze vom 1. März 2010 geliefert kriegen, gibt es zum Beispiel die folgende Möglichkeit:

SELECT * FROM MYTABLE WHERE trunc(DATUMSFELD) = '01-MAR-10'

Das trunc sorgt dafür das die Zeit nicht beachtet wird.

Für alle die sich in Zukunft mehr mit der Materie von Oracle + SQL beschäftigen möchten oder müsse, bald erscheint ein voraussichtlich sehr gutes Buch mit dem Thema: “SQL Thinking – Vom Problem zum SQL Statement (Oracle)“. Wir haben jedenfalls vorbestellt :-)

Nov
24.

Oracle Datenbank Exportieren & Importieren

Hallo Leser,

da wir Heute auch mal wieder vor dem Problem standen: Oracle Datenbank Exportieren und auf einer lokalen Entwickler-Maschine wieder einspielen.

Halten wir es nun endlich in unserem kleinen Blog fest. Oracle lieftert zwei praktische Tools (imp und exp), wie die Namen schon andeuten eines zum Importieren und eines zum Exportieren.

Möchtet ihr nun von einer Datenbank ein User/Schema exportieren geht das wie folgt:

exp username/passwort@instanzName owner=Besitzer des Schemas consistent=yes file=export.dmp

Der Import läuft dann nach dem gleichen Prinzip:

imp username/passwort@instanzName fromuser=Besitzer des Schemas touser=Besitzer des Schemas file=export.dmp

Eine ausführliche Beschreibung der beiden Kommandos findet ihr hier:

Jan
27.

Unixtimestamp in Oracle

Abgelegt in Software | 1 Kommentar

Howdy,

In Search Of Lost Time
Creative Commons License photo credit: bogenfreund

nur ein kleiner Tipp für alle die sich mit dem Design von Datenbanken unter Oracle plagen, oft braucht man einen UNIX Timestamp, diesen kennt Oracle leider von sich aus nicht.

Folgender “code” erzeugt diesen Timestamp für euch im passenden Format:

SELECT
 ROUND ( ( TO_DATE (TO_CHAR (CURRENT_TIMESTAMP, 'DD.MM.YYYY HH24:MI:SS'),
 'DD.MM.YYYY HH24:MI:SS'
 )
 - TO_DATE ('01-01-1970', 'DD.MM.YYYY HH24:MI:SS')
 )
 * 86400,
 0
 ) unix
FROM DUAL
Okt
1.

Ersatz für LIMIT bei Oracle

Oracle JDBC Driver: AlternateServers

Guten Abend liebe Leser,

im Moment kämpfe ich mit Oracle, als Gegner zeigte sich der fehlende LIMIT Befehl. Mit folgendem Statement kann man etwas vergleichbares auch unter Oracle erreichen :

SELECT * FROM (SELECT ROW_NUMBER()
 OVER(ORDER BY to_date(DATUM,'DD.MM.YYYY') DESC)
 LINENUM,
 SPALTE1,
 SPALTE2
 FROM TABELLE WHERE XXX = 'X'
 ORDER BY to_date(DATUM,'DD.MM.YYYY') DESC) WHERE LINENUM BETWEEN 1 AND 75

Diese Statement fragt SPALTE1 + SPALTE2 ab, und sortiert nach einem Datum
welches als String vorliegt, ausgegeben werden die letzten 75 Datensätze.

Vielleicht hilft es dem ein oder anderen :-) 

P.s. unter MY-SQL geht das ganze einfacher :

SELECT * FROM TABELLE LIMIT 10;

Wikipedia : Oracle