Oracle: "Delete if exists" & "Drop if exists" Befehl

Um auf einfache Weise in Oracle eine Tabelle, Prozedure, View, Funktion usw. zu löschen, nutzen Sie folgenden Befehl. Dabei wird die Exception (Fehlermeldung / Ausnahmefehler) unterdrückt, sodaß Ihr Script oder Programm fehlerfrei weiter laufen kann: begin execute immediate ‚DROP TABLE NAME_DER_TABELLE‘; exception when others then null; end Oder für eine Prozedur (Stored Procedure): begin execute immediate ‚DROP PROCEDURE NAME_DER_PROZEDUR‘; exception when others then null; end

Mehr

PHP & Oracle: PHP Datum & Oracle Datum vergleichen / umrechnen

Unter PHP haben Sie z.Bsp. mit folgendem Code ein Zeitstempel erzeugt: <?php startdatum = time(); ?> In einer Oracle Datenbank wurde dieser Zeitstempel in einem Feld vom Typ „number“ abgespeichert. Nun möchten Sie diese Werte vergleichen. Nutzen Sie dafür folgendes SQL Statement: select startdatum, to_date(‚01.06.2009‘, ‚dd.mm.yyyy‘), to_char(TO_DATE(‚19700101000000‘, ‚YYYYMMDDHH24MISS‘) + NUMTODSINTERVAL(startdatum, ‚SECOND‘), ‚dd.mm.yyyy hh24:mi‘) from Tabellenname Dieses SQL Beispiel zeigt Ihnen die unterschiedlichen Daten und Methoden in einem SQL Query. Passen Sie die Daten einfach an Ihre Bedürfnisse an.

Mehr

PHP: Zeilenumbruch (\n) aus String entfernen

Um einen Zeilenumbruch („\n“) aus einem String (Zeichenkette) zu entfernen, nutzen Sie bitte folgende Befehlsfolge: $var = „Zeile\nmit Zeilenumbrüchen\nEnde der Zeile“; $var = str_replace(„\r\n“, “, $var); $var = str_replace(„\n“, “, $var); $var = str_replace(chr(13), “, $var);

Mehr

PHP: Jahreszahl auf Schaltjahr prüfen

Nutzen Sie den folgenden Beispiel-Source um in PHP bei einer Jahreszahl zu prüfen, ob es ein Schaltjahr ist: function is_leapyear($year = 2000) { return date(‚L‘, strtotime(„$year-1-1“)); } Beispielaufruf: if (is_leapyear(2008)) echo „2008 ist ein Schaltjahr“; else echo „2008 ist kein Schaltjahr“;

Mehr

Oracle: Größe von Tabellen berechnen (in GB, MB, KB oder Byte)

Damit Sie die Größe (das Volumen) Ihrer Tabellen ausrechnen können, nutzen Sie folgenden SQL Befehl: SELECT TableName, TABLESPACE_NAME, sum(mb) FROM ( SELECT nvl2(l.segment_name, l.table_name, s.segment_name) TableName, s.TABLESPACE_NAME, bytes / 1024 / 1024 mb FROM user_segments s, user_lobs l WHERE s.segment_name = l.segment_name(+) AND ROUND(bytes / 1024 / 1024) > 0 ORDER BY 1, 2) GROUP BY TableName, TABLESPACE_NAME ORDER BY 1; Ihnen werden alle Tabellen mit einer Größe von mehr als 0 MB angezeigt. Leere Tabellen werden nicht angezeigt. Um die Berechnung in GB, KB oder Bytes zu erhalten, ändern Sie bitte die Division im zweiten SELECT Statement entsprechend ab.

Mehr

mySQL: Alte MD5 Passwörter - OLD_PASSWORD()

In alten mySQL Versionen (vor V4.1) wurde für die Passwortverschlüsselung ein 16 Zeichen langer MD5 Hash genutzt (sh. auch unseren Arikel „Sicherheit: MD5 Hash decodieren / entschlüsseln (16 stelligen Hash)“). Diese Technik war (und ist) unsicher und daher wurde ab Version 4.1 auf den 32 Zeichen langen MD5 Hash umgestiegen. Dieser gilt heute als Standard MD5 Hash und wird in allen gängigen Umgebungen und Systemen gleich berechnet. Um nun bei Bedarf trotzdem noch den alten Hash erzeugen zu können (z.Bsp. müssen Sie verschlüsselte Passwörter vergleichen), stellen wir Ihnen einige Tools zur Verfügung: Online Hash BerechnungDiese liefert Ihnen gleichzeitg ein paar weitere Hash Werte Ihrer Eingabe: md5, crypt, crc32, metaphone, sha1, soundex, str_rot13 Das C Programm für Linux Distributionen Ein C# Programm für MS-Windows Sollten Sie Fragen oder konstruktive Kritik haben, schreiben Sie uns gerne eine E-Mail. Online Hash Berechnung Bitte geben Sie das Passwort in das folgende Feld ein und klicken Sie auf „Hash erzeugen“: Ihnen wird der Hash unterhalb dieser Zeile angezeigt:

Mehr

Oracle: Stored Procedures mit dynamischen SQL Befehlen

Um innerhalb einer „Stored Procedure“ oder „Function“ in Oracle Parameter in eine SQL Abfrage einzubauen, können Sie folgendes Beispiel als Vorlage nutzen: CREATE OR REPLACE PROCEDURE SP_TESTS (in_condition IN VARCHAR2) IS ret_value number; Ssql varchar2(4000); BEGIN DBMS_OUTPUT.PUT_LINE(‚Start …‘); — Prüfen, ob eine Bedingung übergeben wurde — Fall nicht, where mit „1=1“ ergänzen lassen if (in_condition is null OR LENGTH(in_condition) = 0) then condition := ‚ 1=1 ‚; else condition := in_condition; end if; — SQL Query zusammensetzen Ssql := ‚SELECT id FROM demo WHERE ‚ || condition || ‚ ORDER by 1‘; — SQL Query anzeigen DBMS_OUTPUT.PUT_LINE(‚SQL Query: ‚ || Ssql); — Den zusammengebauten SQL Befehl ausführen lassen execute immediate Ssql into ret_value; — Ergebnis anzeigen DBMS_OUTPUT.PUT_LINE(‚Ergebnis: ‚ || ret_value|| ‚%‘); END; Das Script erkennt nach dem Start automatisch, ob eine WHERE Bedingung als Parameter übergeben wurde. Fehlt diese, würde der fehlerhaft SQL so aussehen: SELECT id FROM demo WHERE ORDER by 1 Dadurch würde ein Fehler ausgelöst werden. Durch die Ergänzung mit „1 = 1“ wird der SQL Befehl wieder gültig und kann fehlerfrei ausgefürt werden: SELECT id FROM demo WHERE 1 = 1 ORDER by 1

Mehr

Sicherheit: MD5 Hash decodieren / entschlüsseln (16 stelligen Hash)

Der folgende C Source kann ggf. Ihnen helfen, vergessene MD5 Passwörter (nur 16-stelligen Hash) wieder zu erhalten. Dabei werden nur Passwörter mit bis zu 8 Zeichen berechnet. Außerdem können nicht alle Sonderzeichen berücksichtigt werden. Von Decodieren bzw. Entschlüsseln kann aufgrund der angewendeten Methoden nicht geredet werden. Das genannte MD5 Verfahren hat mathematische Lücken und wurde daher bereits ab mySQL Version 4.1 durch den stärken und (bislang sicheren) MD5/32 Hash abgelöst. Hinweis: Den Sourcecode nutzen Sie vollständig auf eigene Gefahr und Verantwortung. Bitte prüfen Sie vorher, ob Sie berechtigt sind, den MD5 Hash zu berechnen. Sollten Sie Zweifel haben, nutzen Sie die Methoden nicht ! Um Ihnen nicht den vollständigen Source zu liefern (und jedem Hobby-Passwort-Analysten die Berechnung zu erlauben) haben wir die wichtigen Bitverschiebungen im Source durch Smileys ersetzt. Für erfahrene Entwickler wird das Herausfinden und Ersetzen der entsprechenden Sourcecode-Positionen kein Problem darstellen. Zusätzlich bleibt der Source äußerst karg kommentiert. // Tools zur Decodierung von 16stelligen MD5 Hashes // Verwendet von mySQL OLD_PASSWORT() etc. #include „stdlib.h“ #include „stdio.h“ #include „string.h“ #define xor ^ void search3_new( ); void search4_new( ); void search5_new( ); void search6_new( ); void search7_new( ); void search8_new( ); void get_old_nr2( ); void init_password( ); void found_footprint( );

Mehr

Oracle: Tabellen einer Datenbank mit Anzahl der Datensätze auflisten

Mit dieser Funktion erhalten Sie alle Tabellen der Datenbank inkl. der aktuellen Anzahl an gespeicherten Datensätzen. Zusätzlich werden die Summen (Tabellenanzahl, Datensätze) angezeigt: declare cnt number; total number := 0; tabs number := 0; begin for x in ( select owner || ‚.‘ || table_name tab from dba_tables) loop execute immediate ’select count(*) from ‚ || x.tab into cnt; total := total + cnt; tabs := tabs + 1; dbms_output.put_line(‚Table: ‚ || x.tab || ‚, Record count: ‚ || TO_CHAR(cnt)); end loop; dbms_output.put_line(‚Total ‚ || TO_CHAR(total) || ‚ rows in ‚ || TO_CHAR(tabs) || ‚ tables‘); end;

Mehr

Warnung vor Anno 1404 - Fehlender Mehrspielermodus

Die neueste Version des Strategiespieles Anno ist jetzt herausgekommen: Anno 1404. Über die Spielgrafik, die Animation und den Spielablauf möchte ich in diesem Artikel nicht urteilen. Der Grund meiner ausdrücklich Warnung vor dem Kauf dieses Spieles ist der (wieder mal) fehlende Mehrspielermodus. Dieses Problem gab es bereits bei Anno 1503 und es scheint Ubi Soft auch dieses Mal nicht auf die Reihe bekommen zu haben. Zu Erinnerung: Auch bei Anno 1503 wurde der Mehrspielermodus nicht mit ausgeliefert – aber bei Nachfrage die Nachlieferung als Patch versprochen. Soweit so gut – das kann einmal passieren und wäre nicht weiter tragisch gewesen. Ich habe in einem Jahr mehrfach per E-Mail angefragt, wo der versprochene Multiplayermodus (Patch) bleibt. Immer wurde ich um ein paar Wochen Geduld gebeten – bis mir bei meiner letzten Anfrage dann „leider mitgeteilt werden musste“, dass es nun doch keinen Mehrspielermodus geben wird. Bei Bitte, das Spiel zurückzunehmen oder mir einen Teil des Kaufpreises zu ersetzen, wurde empört zurückgewiesen. Schließlich sei das Spiel „voll“ nutzbar wie es auf der Packung stegt. Mit einem sehr dicken Hals habe ich mich gefügt und versprochen, nicht wieder auf diesem dämliche Abzocke hereinzufallen … … und nun versuchen Sie es wieder ! Liebes

Mehr

Zwangsfirewall: "Green Dam-Youth Escort" (China)

Wir halten uns (so gut es geht) aus politischen Themen heraus – wenn es aber um die Meinungsfreiheit (insbesondere im Internet) geht, muss ein Hinweis erlaubt sein. Zwar haben wir auch in Deutschland aktuell leichte Auslegungsdifferenzen und erkennen mittelschwere Probleme mit den angestrebten Datenschutzgesetzten – chinesische Zustände haben wird aber noch (?) nicht erreicht: Seit dem 01.07.2009 hätten alle neuen PCs (Laptops, usw.) mit der Filtersoftware „Green Dam-Youth Escort“ ausgestattet sein sollen. Die Einführung wurde heute gekippt, da es offiziell noch keine genügend getestete Softwareversion gibt. Die massiven Protest könnten auch ein Grund sein ? Dieses Programm soll (nach offiziellen Angaben) den Benutzer vor Kinderpronographie schützen und für ein sichereres Surfen im Internet stehen. Die gefilterten Seiten und Inhalte sollen durch regelmäßige Online-Updates stets aktuell gehalten werden. Dadurch sind an die Lage angepasste Änderungen schnell & einfach möglich. Die Kontrolle und Wahl des Benutzers scheint zu fehlen. Nun wurde bekannt, dass das Programm „Green Dam-Youth Escort“ weit über die Zensur von Pornographie hinausgeht. Demnach werden auch Seiten von politischen Parteien, Zeitungen (z.Bsp. die „www.faz.de“) und andere ausländische Internetseiten gesperrt. Der Hersteller dieser Filtersoftware korrigierte die veröffentlichte Filterliste sehr unauffällig und leise. Einen entsprechenden Bericht finden Sie u.a. unter Jugendschützer wischen

Mehr

Oracle: Kalenderwoche (KW) in Datum umrechnen

In Oracle kann aus einer Kalenderwoche (KW) einfach das Startdatum und Enddatum berechnet werden: SELECT TRUNC(TO_DATE(‚25112009‘, ‚DDMMYYYY‘), ‚IYYY‘) + (26 – 1) * 7 AS date_from, TRUNC(TO_DATE(‚25112009‘, ‚DDMMYYYY‘), ‚IYYY‘) + (26 – 1) * 7 + 6 AS date_to FROM sys.dual; Das Beispiel gilt für die Woche 26/2009. Für andere Kalenderwochen ändern Sie bitte beide Werte „26“ im SQL Statement in Ihre gewünschte Woche um. Das Jahr (im Beispiel „2009“) ggf. ebenfalls angepasst werden. Das folgende Beispiel zeigt Ihnen den Aufbau der Query: SELECT TRUNC(TO_DATE(‚2511[Jahr]‘, ‚DDMMYYYY‘), ‚IYYY‘) + ([KW] – 1) * 7 AS date_from, TRUNC(TO_DATE(‚2511[Jahr]‘, ‚DDMMYYYY‘), ‚IYYY‘) + ([KW] – 1) * 7 + 6 AS date_to FROM sys.dual; Dabei ist das Datum im SQL Befehl (hier der 25.11.) unwichtig.

Mehr