


{"id":270,"date":"2010-10-05T09:50:44","date_gmt":"2010-10-05T07:50:44","guid":{"rendered":"http:\/\/lwibs01.gm.fh-koeln.de\/blogs\/sqlexpert\/?p=270"},"modified":"2010-10-14T19:44:58","modified_gmt":"2010-10-14T17:44:58","slug":"fallstricke-kapitel-2","status":"publish","type":"post","link":"https:\/\/blogs.gm.fh-koeln.de\/sqlexpert\/2010\/10\/05\/fallstricke-kapitel-2\/","title":{"rendered":"Fallstricke Kapitel 2 und 6 (u.A. Datumsfunktionen und Typen)"},"content":{"rendered":"<h3>CONSTRAINTS<\/h3>\n<ul>\n<li>Es gibt unter Oracle mehrere Namensr\u00e4ume, und zwar einen f\u00fcr Tabellen, View, Sequenzen, Private Synonyme, benutzerdefinierte Datentypen je user, eine\u00a0 Namensraum f\u00fcr alle\u00a0 Indizes je user, einem Namensraum f\u00fcr alle CONSTRAINTS je user und einen generellen Namensraum mit Usernamen, Rollen und \u00f6ffentlichen Synonymen.<\/li>\n<li>CONSTRAINT ohne Namen bekommen\u00a0 einen solchem vom System verpasst: SYS_scn;<\/li>\n<li>Ein NOT NULL CONSTRAINT muss immer als Spaltenconstraint vereinbart werden (hei\u00dfen im Buch: inline constraint)<\/li>\n<li>Ein Foreign-Key-Constraunt kann auch auf einem UNIQUE KEY vereinbart werden.<\/li>\n<li>Tabellenbedingung = OUT OF LINE\u00a0 CONSTRAINT<\/li>\n<li>Auf den Datentypen BLOB, CLOB und TIMESTAMP WITH TIME ZONE kann kein Prim\u00e4rschl\u00fcssel und auch kein UNIQUE KEY definiert werden.<\/li>\n<li>Ein BLOB oder CLOB kann auf IS NULL gepr\u00fcft werden.<\/li>\n<li>Es k\u00f6nnen nur CONSTRAINTS auf DEFERRED gesetzt werden, die vorher mit DEFERRABLE vereinbart wurden (siehe: <a href=\"http:\/\/wikis.gm.fh-koeln.de\/wiki_db\/Datenbanken\/SET-CONSTRAINTS\">SET CONSTRAINTS<\/a>)<\/li>\n<\/ul>\n<h3>Datentypen f\u00fcr Zeitfelder unter Oracle<\/h3>\n<ol>\n<li>DATE: beinhaltet year, month, date , hour, minute, second, keine Sekundenbruchteile<\/li>\n<li>NLS_DATE_FORMAT ist eine Systemvariable, die das Ausgabeformat festlegt, genau wie nls_language<\/li>\n<li>TIMESTAMP(n) hat zus\u00e4tzlich zu DATE noch Sekundenbruchteile, Genauigkeit n, default n=6<\/li>\n<li>TIMESTAMP WITH TIME ZONE speichert zus\u00e4tzlich die Zeitzone des DB-Servers beim Datumswert. z.B. +2:00<\/li>\n<li>TIMESTAMP WITH LOCAL TIME ZONE ist der Zeitstempel, der auf dem Datenbankclient g\u00fcltig ist, nicht auf dem Server.<\/li>\n<li>Anfrage mit Datumsfunktionen : SELECT DBTIMEZONE, SESSIONTIMEZONE , SYSTIMESTAMP, LOCALTIMESTAMP\u00a0 FROM DUAL;<\/li>\n<li>INTERVAL YEAR(n) TO MONTH: Zeitinterval f\u00fcr Jahre und Monate, n=2 als Default<\/li>\n<li>INTERVAL\u00a0 DAY(n1) TO SECOND(n2) : Zeitinterval in Tagen, Stunden, Minuten, Sekunden und Sekundenbruchteilen,. DEFAULT n1 = 2, n2 = 6. Wert muss genau eingehalten werden (siehe Beispiel)<\/li>\n<li>Wer noch mehr wissen will: <a href=\"http:\/\/download.oracle.com\/docs\/cd\/B28359_01\/server.111\/b28298\/ch4datetime.htm\">Orcale Datetime<\/a><\/li>\n<\/ol>\n<h4>Zum Testen:<\/h4>\n<p class=\"lead\">DROP TABLE TEST_TIME;<\/p>\n<p>CREATE TABLE TEST_TIME (<br \/>\ns0 NUMBER,<br \/>\ns1 TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,<br \/>\nS2 TIMESTAMP WITH LOCAL TIME ZONE DEFAULT LOCALTIMESTAMP,<br \/>\nS3 INTERVAL YEAR(4)TO MONTH DEFAULT &#8217;10-1&#8242;,<br \/>\ns4 INTERVAL DAY TO SECOND DEFAULT &#8217;40 07:30:00.030000&#8242;);<\/p>\n<p>INSERT into TEST_TIME(s0) VALUES (1);<br \/>\nSELECT * FROM TEST_TIME;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CONSTRAINTS Es gibt unter Oracle mehrere Namensr\u00e4ume, und zwar einen f\u00fcr Tabellen, View, Sequenzen, Private Synonyme, benutzerdefinierte Datentypen je user, eine\u00a0 Namensraum f\u00fcr alle\u00a0 Indizes je user, einem Namensraum f\u00fcr alle CONSTRAINTS je user und einen generellen Namensraum mit Usernamen, Rollen und \u00f6ffentlichen Synonymen. CONSTRAINT ohne Namen bekommen\u00a0 einen solchem vom System verpasst: SYS_scn; Ein&#8230;  <a href=\"https:\/\/blogs.gm.fh-koeln.de\/sqlexpert\/2010\/10\/05\/fallstricke-kapitel-2\/\" class=\"more-link\" title=\"Read Fallstricke Kapitel 2 und 6 (u.A. Datumsfunktionen und Typen)\"><?php _e(\"Read more &raquo;\",\"wpbootstrap\"); ?><\/a><\/p>\n","protected":false},"author":23,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[245,249],"tags":[323,286,326,378,377,325,376,267,368,366,283],"class_list":["post-270","post","type-post","status-publish","format-standard","hentry","category-ddl-statements","category-6-single-row-functions","tag-constraint","tag-date","tag-index","tag-interval","tag-localtimestamp","tag-namensraum","tag-nls_date_format","tag-null","tag-role","tag-synonym","tag-timestamp"],"acf":[],"_links":{"self":[{"href":"https:\/\/blogs.gm.fh-koeln.de\/sqlexpert\/wp-json\/wp\/v2\/posts\/270","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.gm.fh-koeln.de\/sqlexpert\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.gm.fh-koeln.de\/sqlexpert\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.gm.fh-koeln.de\/sqlexpert\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.gm.fh-koeln.de\/sqlexpert\/wp-json\/wp\/v2\/comments?post=270"}],"version-history":[{"count":31,"href":"https:\/\/blogs.gm.fh-koeln.de\/sqlexpert\/wp-json\/wp\/v2\/posts\/270\/revisions"}],"predecessor-version":[{"id":274,"href":"https:\/\/blogs.gm.fh-koeln.de\/sqlexpert\/wp-json\/wp\/v2\/posts\/270\/revisions\/274"}],"wp:attachment":[{"href":"https:\/\/blogs.gm.fh-koeln.de\/sqlexpert\/wp-json\/wp\/v2\/media?parent=270"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.gm.fh-koeln.de\/sqlexpert\/wp-json\/wp\/v2\/categories?post=270"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.gm.fh-koeln.de\/sqlexpert\/wp-json\/wp\/v2\/tags?post=270"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}