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

Linux: C Programm compilieren (gcc)

Um auf einem Linuxsystem ein C-Programm compilieren zu können, muss eine C Umgebung installiert sein. Der C Compiler (= der Übersetzer des C Sourcecodes in ein Maschinenproramm) heißt z.Bsp. „gcc“. Eine erste Hilfe für das Compilieren soll Ihnen der folgende Befehl geben: gcc -O3 -o poc poc.c Bitte lesen Sie die Handbücher und Tipps bzgl. gcc. Es gibt sehr viele Optionen / Parameter mit noch mehr Kombinationen und Auswirkunken. Diese hier aufzuführen würden den Rahmen und die Aktualität sprengen.

Mehr

WordPress: Thinkbox in Version 2.8

Wenn Sie Ihre WordPress Installation auf Version 2.8 updaten, dann wird die ThinkBox Komponente teilweise fehlerhaft bzw. garnicht mehr funktionieren. Die Bilder werden nircht mehr als Popup (ThinkBox / ) Fenster angezeigt, sondern „normal“ als Bild im Browser. Ändern Sie WordPress wir folgt um dieses Probelm zu beheben: Öffnen Sie die Datei „/wp-includes/general-template.php“ Suchen Sie die Zeile „function add_thickbox() {“ recht weit am Ende der Datei Kommentieren Sie die folgende Zeile aus indem Sie zwei „/“ Zeichen an den Anfang der Zeile setzen: wp_enqueue_script( ‚thickbox‘ ); Wird zu // wp_enqueue_script( ‚thickbox‘ ); Fügen Sie die folgenden Zeilen direkt unterhalb der auskommentierten Zeile ein: global $wp_version; if ($wp_version == ‚2.8‘) { wp_enqueue_script(‚thickbox28′,’/wp-includes/js/thickbox/thickbox.js‘, array(‚jquery‘)); } else { wp_enqueue_script(‚thickbox‘); } Speichern Sie die Datei auf ihrem WebServer und Ihre ThinkBox Anzeige wird wieder funktionieren. Beispiel: http://www.malte-retzlaff.de/photos/hamburg-harley-days-2009/

Mehr

mySQL: Alten MD5 Hash in C# berechnen (16 stellig)

Die mySQL Versionen vor V4.1 nutzen einen veralteten MD5 Hash-Algorithmus. Dieser lieferte nur einen max. 16 stelligen Hashwert und ist weiterhin unsicher und teilweise decodierbar. Zwar gilt für MD5 aufgrund seines Algorithmusses grundsätzlich, dass diese Hashwerte nicht „decodiert“ werden können – für den alten MD5/16 Code gilt dies‘ jedoch nicht eingeschränkt. Aufgrund des häufigen Anfragen für eine einfache Berechnung dieses MD5/16 Hash haben wir Ihnen den C# Sourcecode zur Verfügung gestellt. Diese liefert Ihnen für ein Passwort (= Parameter) den MD5/16 Hash: Aktueller Hinweis vom 03.06.2017: Es ist zum Kotzen, dass man hier seine eigene Arbeit präsentiert und diese dann rotzfrech z.Bsp. zu Stackoverflow kopiert wird. Urheberrecht (Copyright) scheint für viele ein Fremdwort zu sein. An alle Kopierer: Wundert ihr Euch wirklich, dass gute Entwickler mehr und mehr ihren Source Code verschlüsseln und immer weniger helfen !? Anstall Stackoverflow meine Arbeit schützt, werde ich aufgefordert (Quelle: http://stackexchange.com/legal/terms-of-service#ReportingCopyrightInfringements), noch weitere Datenschutzrelevante Daten zu präsentieren. Geht’s dann noch !? Wenn meine Ausdruckweise den einen oder anderen stört, dann ist das schade – würden sich mehr Nutzer für den Schutz des geistigen Eigentums stark machen, dann müsste ich mich nicht so häufig ärgern. Die Folge ist, dass ich irgendwann solche Seiten mit kostenfreier

Mehr

Internet: Keine Überwachung von Familienmitgliedern notwendig

Wenn Sie einen Internetanschluss haben, der auch von Ihren Familienmitgliedern genutzt wird, sind Sie nicht verpflichtet, diese Nutzung zu überwachen. Urteil: OLG Frankfurt vom 20.12.2007 / II W 58/07 Im Verfahren hatte ein Musikverlag einen Internetnutzer verklagt, von dessen Anschluss ca. 300 Musikdaten (mp3 Dateien) rechtswidrig heruntergeladen wurden. Das genutzte System ist aktuell unter „file sharing“ bekannt. Der Angeklagte widersprach dem Vorwurf und behauptete, weder er noch seine Familienangehörigen hätten die Daten heruntergeladen. Die Klage des Musikverlages wurde abgewiesen. Grund: Der Kläger hat nicht nachgewiesen, dass der Beklagte oder seine Angehörigen die Dateien tatsächlich heruntergeladen haben. Es sei zwar naheliegend, dass die Dateien von einem Familienmitglied heruntergeladen („gedownloaded“) wurden – dafür müsse er aber nicht einstehen, da er keine Verpflichtung habe, die Nutzung seines Internetanschlusses zu überwachen. Eine Überwachung ist nur dann verpflichtend, wenn andere Nutzer in der Verganganheit den Anschluss schon einmal für rechtswidrige Handlungen nutzten. Dieses war hier jedoch nicht der Fall. Bitte beachten Sie: Dieses ist eine Rechtsinformation. Wir übernehmen keine Gewähr. Bitte informieren Sie sich bei Bedarf / Interesse bei einem zugelassenen Rechtsanwalt.

Mehr

mySQL: Schutz vor Angriffen in Datenbankabfragen (SQL Injection)

Normale SQL Abfragen mit direkt eingebundenen Parametern ohne zusätzliche Schutzfunktionen kann sehr böse Folgen haben. Meist merken Sie davon nichts – Ihre Daten sind jedoch in höchster Gefahr. Szenario #1: Ein einfacher Angriff Nehmen wir eine (leider) normale Datenbankabfrage in PHP: $query = „SELECT * FROM users WHERE user='{$_POST[‚username‘]}‘ AND password='{$_POST[‚password‘]}'“; Nicht immer müssen die „richtigen“ Parameter durch Ihre Oberfläche übergeben werden. Durch einfache Manipulation der Parameter (über gesonderte Abfragen) können beliebige Daten mit POST übergeben werden. Gehen wir von folgenden Parametern aus: $_POST[‚username‘] = „max“; $_POST[‚password‘] = „‚ OR “='“; Dadurch würde das SQL Statement so aussehen: SELECT * FROM users WHERE user=’max‘ AND password=“ OR “=“ Szenario #2: Auflisten von Benutzernamen & Passwörtern Ebenfalls leicht möglich. Dafür wird eine Datenbankabfrage (SELECT Statement) einfach erweitert: $query = „SELECT id, name, inserted, size FROM products WHERE size = ‚$size‘ ORDER BY $order LIMIT $limit, $offset;“; Nun wird z.Bsp. der Parameter „size“ vom Angreifer modifiziert: ‚ union select ‚1‘, concat(uname || ‚-‚ || passwd) as name, ‚1971-01-01‘, ‚0‘ from usertable; — Dadurch wird folgende SQL Statement an die Datenbank übergeben: SELECT id, name, inserted, size FROM products WHERE size = “ union select ‚1‘, concat(uname||‘-‚||passwd) as name, ‚1971-01-01‘, ‚0‘ from usertable;

Mehr

mySQL: 4 GB Grenze umgehen

Wenn Sie eine mySQL Tabelle „überfüllen“ möchten, erhalten Sie die Fehlermeldung „The table is full“. Meist haben Sie dann die 4 GB Grenze von mySQL erreicht. Dieses Problem tritt in Verbindung mit Tabellen vom Typ „myISAM“ auf. Um dieses Hürde zu überspringen und mahr Daten speichern zu können, können Sie den Grenzwert mit einem „ALTER TABLE“ Befehl übersteuern. Bitte beachten Sie, dass dieser Befehl einige Zeit in Anspruch nimmt ! Beispiel: In diesem Beispiel heißt die Datenbank „wetter“: Die aktuellen Grenze erhalten Sie durch folgenden Befehl: mysql> show table status like ‚wetter‘ *************************** 1. row *************************** Name: wetter Type: MyISAM Row_format: Dynamic Rows: 0 Avg_row_length: 0 Data_length: 0 Max_data_length: 4294967295 Index_length: 1024 Data_free: 0 Auto_increment: NULL Create_time: 2003-03-03 00:43:43 Update_time: 2003-03-03 00:43:43 Check_time: 2003-06-14 15:11:21 Create_options: Comment: 1 row in set (0.00 sec) Hier finden Sie die Info: Max_data_length = 4 GB. Setzen Sie das Limit neu mit diesem Befehl: mysql> alter table wetter max_rows=200000000000 avg_row_length=50; Query OK, 0 rows affected (0.03 sec) Records: 0 Duplicates: 0 Warnings: 0 Und prüfen Sie die Grenze wieder: mysql> show table status like ‚wetter‘ *************************** 1. row *************************** Name: wetter Type: MyISAM Row_format: Dynamic Rows: 0 Avg_row_length: 0 Data_length: 0 Max_data_length: 1099511627775 Index_length:

Mehr

Windows Sourcecode

Vielleicht können Sie sich auch (mit einem Augenzwinkern) über den gefundenen Windows-Source freuen: /* Source Code Windows 2000 */ #include „win31.h“ #include „win95.h“ #include „win98.h“ #include „workst~1.h“ #include „evenmore.h“ #include „oldstuff.h“ #include „billrulz.h“ #include „monopoly.h“ #include „backdoor.h“ #define INSTALL = HARD char make_prog_look_big(16000000); void main() { while(!CRASHED) { display_copyright_message(); display_bill_rules_message(); do_nothing_loop(); if (first_time_installation) { make_100_megabyte_swapfile(); do_nothing_loop(); totally_screw_up_HPFS_file_system(); search_and_destroy_the_rest_of-OS2(); make_futile_attempt_to_damage_Linux(); disable_Netscape(); disable_RealPlayer(); disable_Lotus_Products(); hang_system(); } write_something(anything); display_copyright_message(); do_nothing_loop(); do_some_stuff(); if (still_not_crashed) { display_copyright_message(); do_nothing_loop(); basically_run_windows_31(); do_nothing_loop(); } } if (detect_cache()) disable_cache(); if (fast_cpu()) { set_wait_states(lots); set_mouse(speed,very_slow); set_mouse(action,jumpy); set_mouse(reaction,sometimes); } /* printf(„Welcome to Windows 3.1“); */ /* printf(„Welcome to Windows 3.11“); */ /* printf(„Welcome to Windows 95“); */ /* printf(„Welcome to Windows NT 3.0“); */ /* printf(„Welcome to Windows 98“); */ /* printf(„Welcome to Windows NT 4.0“); */ printf(„Welcome to Windows 2000“); if (system_ok()) crash(to_dos_prompt) else system_memory = open(„a:\swp0001.swp“,O_CREATE); while(something) { sleep(5); get_user_input(); sleep(5); act_on_user_input(); sleep(5); } create_general_protection_fault(); }

Mehr

C#: ByteArray in String umwandeln und umgekehrt

Um aus einem String ein ByteArray zu erzeugen, nutzen Sie folgenden Befehl: byte[] sByteArray = System.Text.Encoding.GetEncoding(1252).GetBytes(„Text als String“); Mit dem folgenden Befehl wandeln Sie ein ByteArray wieder in einen String um: string sData = System.Text.Encoding.ASCII.GetString(sByteArray);

Mehr

Oracle: sqlplus mit Benutzernamen & Passwort starten

Wenn Sie unter Oracle das SqlPlus Programm als sysdba (Datenbank-Administrator) starten möchten, dann nutzen Sie folgende Befehle: Bei Oracle 8.0 (Clientversion): sqlplus ’sys/oracle@datenbank as sysdba‘ Bei Oracle 8i: (Meist geht auch die Eingabe wie unter Oracle 8.0) sqlplus \“sys/oracle@datenbank as sysdba\“ Bei Oracle 9i: sqlplus „sys/oracle@datenbank as sysdba“

Mehr

Windows Vista: Installation vom USB Stick

Es ist möglich, MS Vista vom USB Stick aus zu installieren. Das wird vor allem dann notwendig, wenn Ihr Notebook kein DVD Laufwerk hat. Voraussetzung ist ein bootfähiger USB Stick, den Sie einfach erstellen können. Bitte beachten Sie, dass zwar der Großteil aber nicht jeder USB Stick diese Technik zulässt. Nach unserer Erfahrung geht dieser Schritt häufig einfacher, wenn Sie Ihren Stick mit den folgenden Schritten an Ihrem Laptop einrichten: Stecken Sie den USB Stick an den PC / Laptop Hinweis: Der USB Stick sollte mindestens 4 GB Speichplatz haben. Hinweis: Alle Daten auf Ihrem USB Stick werden bei den folgenden Schritten unwiederbringlich gelöscht. Klicken Sie auf „Start“ und dann auf „Ausführen“ (oder drücken Sie die Windowstaste & „R“) Geben Sie „diskpart“ ein und klicken Sie auf „OK“ Das Programm Microsoft Diskpart wird angezeigt und wartet nach wenigen Sekunden auf Ihre Eingabe. Geben Sie nacheinander folgende Befehle ein und drücken Sie jeweils „Enter“ nach jeder Zeile: list disk Ihnen werden alle von Windows erkannten Datenträgen angezeigt. In der ersten Spalte finden Sie jeweils die Datenträgernummer (startend bei Null). Notieren Sie sich die Nummer Ihres USB Sticks. Am einfachsten finden Sie Ihren USB Stick über die Größenangabe in der vierten Spalte.

Mehr

Vista: Deaktivierter Updatedienst verhindert Installationen

Wenn Sie unter Microsoft Windows Vista den Updatedienst („Windows Update“) gestoppt und deaktiviert haben, können einige Installationsprogramme ohne erklärende Warnung abbrechen. So beendet sich z.Bsp. das Setup des MS Visual Studios 2008 ohne dass der Benutzer den Grund erkennen könnte. Lösung: Ändern Sie den Typ des Updatedienstes auf „Manuell“ Wiederholen Sie die gewünschte Installation Setzen Sie den Diensttyp wieder auf „Deaktiviert“

Mehr

Windows Vista: Version abhängig von Lizenzschlüssel / Seriennummer

Bei Windows Vista entscheidet der Lizenzschlüssel (die Seriennummer) über den Umfang der Installation. Alle marktüblichen DVDs (Ausnahmen sind z.Bsp. Sonderpressungen für ActionPack-Abonnenten, etc.) enthalten den vollständigen Installationsumfang von Vista Starter bis zu Vista Ultimate. Somit können Sie bei Verlust Ihrer MicroSoft Windows Vista DVD auch getrost die DVD eines Bekannten für eine Neuinstallation nutzen. Eigene Versuche führten bei uns immer zum gewünschten Erfolg – eine Garanite übernehmen wir natürlich trotzdem nicht. Rechtlicher Hinweis: Ihren persönlichen Lizenzschlüssel dürfen Sie nicht weitergeben. Sie dürfen keinen fremden Lizenzschlüssel für eine installation o.ä. nutzen. Bitte beachten Sie dazu auch die Lizenzvereinbarungen von MicroSoft für Vista.

Mehr

Excel 2007: Optionen anzeigen / einstellen

Die Optionen finden Sie im neuen Layout von Excel 2007 an einer recht versteckten Stelle: Klicken Sie auf den Windows Button in Excel (oben links im Excel Fenster) Im angezeigten Menü finden Sie unten rechts den Button „Excel-Optionen“ Anklicken – Fertig. Dort können Sie weitere Einstellungen vornehmen: Benutzernamen ändern Sprachen einstellen Sortierung definieren Anzahl der Arbeitsblätter (im Standard) anpassen Farbschema auswählen Schriftart für Excel einstellen Kontrolle über die Formelerstellung (automatisch Berechnung etc.) Formelberechnung anpassen Fehlerüberprüfung konfigurieren Regeln für die Fehlerüberprüfung Farben, Hervorhebung, Jahreszahlen (2-stellig / 4-stellig) Bearbeitung von Tabellen Dokumentenprüfung Rechtschreibung, neue Rechtschreibung, Vorschläge Benutzerwörterbuch wählen Sprache des Wörtesbuches ändern Einstellungen zur Exceldatei-Speicherung Standardordner, Serverordner, Intervall für die Autospeicherung Auto-Wiederherstellung / Excel wiederherstellen Umgang bei / mit Drag & Drop Warnen vor zeitaufwändigen Berechnungen / Operationen Trennzeichen Dezimalkomma einstellen Häufige Befehle verwalten und darstellen (Menüpunkte) Add-Ins verwalten Vertrauensstellungscenter Excel / Office Update durchführen Supportkontakt

Mehr

Windows: Backup in der Home Edition installieren

Bei der Standardinstallation von Windows XP Home Edition wird das Backupprogramm nicht installiert. Trotzdem können Sie es sehr einfach und schnell jederzeit nachträglich installieren: Legen Sie Ihre Windows XP CD ins das CD Laufwerk Gehen Sie in das folgende CD Verzeichnis: valueadd \ msft \ ntbackup Dort starten Sie das Programm „Ntbackup.msi“ und folgen den Anweisungen Fertig. Hinweis: Bei der nachträglichen Installation wird die automatische Systemwiederherstellung nicht unterstützt. Sie können wichtige Systemdateien aber mit der Backupsoftware sichern. Weitere Informationen zur automatischen Systemwiederherstellung finden Sie bei MicroSoft unter KB302700.

Mehr

Oracle: Performance von Sortierungen messen (In-Memory Sort Ratio)

Mit dem folgenden SQL Befehl können Sie auf Ihrer Oracle Datenbank prüfen, wie der „In-Memory Sort Ratio“ auf Ihrem Datenbankserver ist: SELECT a.value/(b.value + a.value) „Sort Ratio“ FROM v$sysstat a, v$sysstat b WHERE a.name = ’sorts (memory)‘ AND b.name = ’sorts (disk)‘ Ihnen wird als Ergebnis eine Zahl angezeigt. Bei gut optimierten Datenbanken liegt der „In-Memory Sort Ratio“ über 0,95 (also 95%). Im Beispiel würde es bedeuten, dass mehr als 95 % sämtlicher Sortieraktionen im Hauptspeicher stattfinden.

Mehr

Oracle: MERGE Beispiel

Um Daten automatisch entweder in die Tabelle einzufügen oder upzudaten, können Sie den MERGE Befehl von Oracle nutzen. Im folgenden PHP-Beispiel wird die Nutzung verdeutlicht. Dabei ist zusätzlich eine automatische Löschung des Datensatzes eingebaut, wenn kein Benutzername übergeben wurde (Erklärung s.u.): foreach ($users as $id => $username) { if (empty($username)) $sql = „DELETE FROM users WHERE id = $id“; else { $sql = „MERGE INTO users U USING dual ON (dual.dummy is not null and U.id = $id) WHEN MATCHED THEN UPDATE SET name = $username WHEN NOT MATCHED THEN INSERT (id, name) VALUES ($id, $username)“; } } Als SQL Beispiel: MERGE INTO users U USING dual ON (dual.dummy is not null and U.id = 10) WHEN MATCHED THEN UPDATE SET name = ‚Max Muster‘ WHEN NOT MATCHED THEN INSERT (id, name) VALUES (10, ‚Max Muster‘) Das Script sucht nach dem Benutzer mit der ID „10“. Wird er gefunden, dann wird der Name per UPDATE geändert. Wird der Eintrag nicht gefunden, dann wird per INSERT ein entsprechender Datensatz angelegt. Bei Fragen oder Anmerkung schreiben Sie uns gerne einen Kommentar. Wir freuen uns auch über Einträge, wenn Ihnen dieser Artikel half.

Mehr

Oracle: Optimierung von SQL Befehlen durch entfallende Sortierungen

Die folgenden Oracle Befehle lösen (je nach Umfang aufwändigere) Sortierungen aus: ORDER BY GROUP BY SELECT DISTINCT CREATE INDEX ANALYZE UNION INTERSECT MINUS JOIN Nur Joins von Tabellen mit nicht indexierten Spalten Bei großen Datenmengen können diese Befehle / Optionen so aufwändig werden, dass Sie mehrere Sekunden bis Minuten nur wegen der Sortierung warten. Kombinieren oder kapseln Sie diese Befehle noch, vervielfacht sich der Rechenaufwand für den Datenbankserver und die performance sinkt dementsprechent stark. Um die Performance zu verbessern, können Sie folgende Maßnahmen umsetzen: Sortiervorgänge vermeiden Das Vermeiden der Sortiervorgänge ist die erste (und beste !) Maßnahme. Die folgenden Punkte geben einige Hinweise, wie Sie Sortiervorgänge vermeiden können: Benutzen Sie UNION ALL anstelle von UNION (nicht immer möglich) Indizieren Sie alle Tabellen (Felder), die Sie in einer Join-Operation verwenden Spalten, die Sie in ORDER BY und GROUP BY Funktionen verwenden, sollten mit einem Index versehen werden Benutzen Sie den COMPUTE Befehl für die Analyse von Tabellen und Indizes Vergrößerung der Sort Area Seit Oracle9i ist der Initialisierungsparameter „PGA_AGGREGATE_TARGET“ verfügbar. Dieser legt fest, wie viel Hauptspeicher in der PGA für alle Serverprozesse der Instanz zur Verfügung gestellt wird. Oracle versucht dabei, dass die Größe des Private Memorys nicht über diese Größe

Mehr

Excel: Beim Start werden automatisch Dateien geöffnet

Wenn Sie Excel starten und Ihnen automatisch Dateien geöffnet / angezeigt werden, dann ist die häufigste Ursache der eingetragene Autostartordner. Um das Problem zu beheben, folgen Sie den folgenden Schritten: Starten Sie Excel Wählen Sie im Menü den Eintrag „Option“ Öffnen Sie den Reiter „Allgemein“ Löschen Sie den Eintrag im Feld „Bei dem Start alle Dateien in diesem Ordner laden“ Klicken Sie auf „OK“ Beenden Sie Excel und starten Sie es erneut Sollte weiterhin automatisch Dateien geöffnet werden,müssen Einstellungen in der Registry geändert werden. Bitte folgen Sie dafür den Anweisungen auf der Microsoft Webseite unter http://support.microsoft.com/kb/328233/de

Mehr

WordPress: Mehrere Domains mit einer WP Installation

Um mit einer WordPress Installation gleich mehrere Domains verwalten zu können, müssen Sie die wp-config.php (im Hauptverzeichnis Ihrer WordPress Installation) wie folgt anpassen: Den alten Tabellenprefix können Sie auskommentieren (oder löschen): // $table_prefix = ‚wp_‘; Unter diese Zeile schreiben Sie die folgende Anpassung: $arrPrefix = explode( „.“, $_SERVER[„HTTP_HOST“] ); $table_prefix = str_replace(„-„, „“, $arrPrefix[( count( $arrPrefix ) – 2 )].’_‘); Dadurch wird der Standard von WordPress (die Tabellen beginnen mit „wp_“) durch den entsprechenden Domainnamen ersetzt. Sie erhalten also pro Domain einen Tabellensatz von WordPress. Vorteil: Plugin können einmal in Ihrem WordPress installiert werden und dann getrennt für jede Domain aktiviert bzw. nicht aktiviert werden. Wenn Sie das Plugin aktualisieren, gilt dies‘ automatisch für alle Domains auf dieser WordPress Installation.

Mehr