Zum Inhalt springen

dr.dimitri

Mitglieder
  • Gesamte Inhalte

    1276
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von dr.dimitri

  1. Die User können in Produktion selbst Spalten anlegen? An jeder Versionsverwaltung, Revision etc. vorbei? Ich würd mal sagen, das ist dann dein größtes Problem und sollte angegangen werden. Ansonsten kann ich dir leider nicht weiterhelfen, da ich mit MSSQL (zum Glück ) noch nie was machen musste. Dim
  2. Wir haben auch auf so ziemlich allen Tabellen (ca. 250) Trigger. Allerdings generieren wir die ausserhalb der Datenbank während des Build Prozesses und spielen sie dann in die DB ein. Im Trigger irgendwas aus Systemviews dynamisch zu ermitteln ist viel zu unperformant. Dim
  3. Hier noch 3 weitere Möglichkeiten das zu realisieren: PL/SQL Web-Services (Teil II) Dim
  4. Mehr Infos zu Rownum gibts hier Dim
  5. Unbedingt. Frag bei eurem DBA nach, ob er regelmäßig Statistiken erfasst. Ansonsten soll er es einplanen. Dim
  6. Oh je das sind ja mal Aussagen/Tätigkeiten... Ich fang mal vorne an: Also du willst zählen? Ich seh aber leider keinen Count. Dann der Hint: Mal davon abgesehen, dass die Verwendung hier absolut nichts bewirkt und die Syntax falsch ist, solltest du die Finger von Hints lassen und lieber dafür sorgen, dass die Tabelle aktuelle Statistiken besitzt. Wieso? Mach den UNDO TS doch einfach größer. Das ist meistens ein Trugschluss. Sind die Statistiken aktuell? Die Statements optimiert etc? Hast Du einen SQL Trace gemacht um herauszufinden woran es eigentlich liegt? Oracle ist nicht Access. Hier wird überhaupt nichts zum Client geschaufelt. Daher ist ein normales SQL erstmal nicht schneller oder langsamer als eines das über eine SP abgesetzt wird. Wenn Du wirklich noch löschen willst/musst, dann gibt es zwei Möglichkeiten es zu machen: DELETE FROM nlxinb61.tb61qualityinfo WHERE testdate TO_DATE ('20070101', 'yyyymmdd') AND ROWNUM <= 300000; COMMIT; Und das ganze solange bis erstmalig weniger als 300 Tsd Sätze gelöscht werden. Eine andere Möglichkeit ist es, die Daten die du behalten möchtest in eine andere Tabelle zu kopieren, die Ursprungstabelle zu truncaten und die Daten wieder zurückzukopieren. Ist aber nur problemlos möglich wenn keine anderen Sätze per RI dranhängen und niemand auf die Daten zugreifen muss. In beiden Fällen vorher und nachher neue Statistiken erfassen. Poste doch mal den Output deines explain plans. Dim PS: Die Frage kommt mir aber irgendwie bekannt vor. Hast die nicht schon mal vor ein paar Tagen in einem anderen Forum gepostet und eine ähnliche Antwort von mir bekommen?
  7. Oracle macht auch bei kleineren Anwendungen Sinn, da Du viele nützliche Features hast, die MSSQL nicht bietet: - Row Level Locking (ohne Overhead wie bei anderen DBMS) - Select und DDLs blockieren sich nicht (auch ohne Dirty Read) - PL/SQL - Apex Um nur mal ein paar Dinge aufzuzeigen, die auch die kostelose XE Version bereits bietet. Dim
  8. Naja wo liegt da das Problem? Du formulierst das einfach als Join: SELECT ids.id,ortname.name FROM ids,ort_ids,ortname WHERE ids.id=ort_ids.id AND ort_ids.ortsbez=ortname.name Das ist im übrigen auch das was ich vorher gepostet hab, allerdings bist mit deinen blö... meine unglücklichen Tabellenbenamsungen hier im Beispiel durcheinander gekommen. Dim
  9. Was bedeutet denn leere felder für dich? NULL ist ein leeres feld im Sinne der datenbank. Der Inahlt ist undefiniert (daher auch der Operator IS NULL und nicht = NULL) Wenn Du aber jetzt einfach Strings mit lauter Blanks drinnen stehen hast, dann ist das Feld nicht leer. Dim
  10. Hatten wir das nicht schon mal: http://forum.fachinformatiker.de/datenbanken/114617-daten-2-bzw-3-tabellen-zusammenfuehren.html Dim
  11. Hi, also grundsätzlich kann jedes Projekt fehlschlagen bzw. es tauchen Probleme auf, die man einfach nicht bedacht hat. Wichtig ist für dich jetzt, dass Du untersuchst/dokumentierst welche Workarounds in frage kämen bzw. warum eben nicht. Einfach schreiben es kann mir keiner helfen reicht nicht. Ein nicht erfolgreiches Projekt ist kein Grund für eine schlechte Note ebensowenig wie ein erfolgreiches Projekt ein Garant für 95 Punkte ist. Du musst nur zeigen, dass Du damit umgehen kannst - auch das gehört zur Projektarbeit incl. der Lessions Learned. Dim
  12. Eine PQ kannst auch atomatisch "auslösen", wenn die Tabellen mit der Parallel Option angelegt wurden. Bei dir ist vermutlich ein Hashjoin dran "schuld". Also temp TS vergrößern (lassen). Dim
  13. Hi, das kriegst Du so hin: SELECT rownum, a.* FROM( SELECT .... ORDER BY ...) a Wenn das nicht passt bräuchte ich noch ein bischen mehr von diesem Codefetzen. Dim
  14. Hi, wenn Du DBMS_JOB verwenden möchtest musst Du dafür eine eigene PL/SQL Function schreiben die dir das berechnet und einen entsprechenden DATE Wert zurückgiebt. Einfacher ist das mit DBMS_SCHEDULER begin dbms_scheduler.create_job(job_name=>'MY_JOB', job_type=>'STORED_PROCEDURE', job_action=>'myproc', start_date=>to_timestamp('14.04.2008 05:00','DD.MM.YYYY HH24:MI'), repeat_interval=>'FREQ=WEEKLY;BYDAY=MON,TUE,WED,THU,FRI;BYHOUR=5'); end; / Der Job würde, beginnend am 14.4. von Montag-Freitag jeweils um 5 Uhr laufen. Über die View user_scheduler_jobs kannst ihn dir dann ansehen. Dim
  15. Die Datenbank will sortieren (passiert z.B. bei ORDER BY, DISTINCT oder einem HASH JOIN) und muss Teile davon auslagern weil sie nicht mehr in den Speicher passen. Dazu gibt es unter Oracle einen TEMP Tablespace, welcher am ehesten mit der Windowsauslagerungsdatei zu vergleichen ist. Und eben dieser TS ist nicht groß genug. Du kannst ihn jetzt entweder vergrößern (lassen) oder auch mal probieren den Join ohne Parallel Query auszuführen. Dim
  16. current_timestamp Dim PS: benutze PreparedStatements!
  17. dr.dimitri

    C++ oder CCNP

    Mach dir doch wenigstens die Mühe einen Crosspost auch als einen solchen zu kennzeichnen. Dim
  18. Ja was interessiert dich denn mehr? Netzwerke aufbauen oder Anwendungsentwicklung? Nebenbei würd ich persönlich zu C++ und Oracle tendieren aber auch nur, weil ich mich nicht sonderlich für Routingtabellen interessiere Dim
  19. Auf die Kombination aus Vor- und Nachname kann man gar keinen Uniquie setzen - also rein fachlich. Man braucht nur noch ein drittes nummerisches Feld, welches per default mit 1 belegt ist. Lege ich meinen zweiten Hans Meier an, bekomme ich erst mal eine Unique Constraint Verletzung. Ich muss also nicht erst im Programm prüfen was in einer Multiuserumgebung eh nicht 100%ig sicher möglich ist. hab ich jetzt also meinen Fehler, wird dieser vom Programm abgefangen und statt der 1 eine 2 versucht bis der Insert durchgeht (natürlich ohne zutun des Anwenders). Dann steht z.B. Hans Meier 1 und Hans Meier 2 in der DB woraus dann die, durchaus üblichen, Mailadressen hans.maier@xy und hans.meier2@xy gebildet werden können. Dim
  20. Mich auch. Wenn Du dir Usrsprungsdaten noch hast, selektier doch mal mit dieser Einschränkung. Vielleicht hast dich nur getäuscht. Dim
  21. Ja das Problem hatten wir ja schon mal. Leider hast meine beiden Beiträge bezügl. den regulären Ausdrücken komplett ignoriert. Wenn man genau nachdenkt, braucht man auch gar keine reg. Ausdrücke, man muss nur dafür sorgen, dass nur die falschen Einträge selektiert werden. Also: update t set c=to_char(to_date(c,'DD-MON-YY'),'DD.MM.YYYY') where c like '__-___-__' Und damit hat sich das erledigt. Sollten deutsche und amerikanische Monatsnamen vorhanden sein, musst Du wahrscheinlich wirklich einen regulären Ausdruck dafür bauen, oder ein anderes WHERE Konstrukt. Ich hoffe das ist dir eine Lehre nie Datumswerte in einem varchar Feld zu speichern Dim
  22. In diesem Thread hab ich Dir bereits auf eine ähnliche Frage geantwortet, dass Du in Deiner Suche reguläre Ausdrücke verwenden kannst. Damit kannst Du einen Update mit der entsprechenden WHERE Bedingung schreiben. Dim
  23. Warum verwendest Du keine DATE Spalte wie ich es bereits vor Wochen vorgeschlagen habe? Vergiss diese VARCHAR2 Spalte und wandle es in eine DATE Spalte um. Dim
  24. Aha den Instant Client verwendest Du. Dort gibt es mehrere Pakete die aufeinander aufbauen. Für ODBC brauchst das Basic Paket und zusätzlich das ODBC Paket. Vermutlich fehlt dir ersteres. Dim PS: Standard wird mit d geschrieben. Die Standarte ist etwas völlig anderes.
  25. Welche Versionen hast Du denn verwendet? Bedeutet, Du startest die setup.exe und es passiert nichts? Dim

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...