Zum Inhalt springen

dr.dimitri

Mitglieder
  • Gesamte Inhalte

    1.276
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von dr.dimitri

  1. Welche Wirkung könnte das nachsehen der REPLACE Funktion in der Oracle-Doko haben? Was würde jemand erreichen wollen, der das einfach anhand eines kleinen Beispiels selbst nachvollzieht? Dim
  2. Hi, Dein SQL kommt mir irgendwie komisch vor (mal von den schon erwähnten syntaktischen Fehlern): SELECT selektion.kndnr, xkundenadresse.vorname1, xkundenadresse.nachname1, xkundenadreses.dataupd FROM selektion xkundenadresse WHERE selektion.werbecode = 221000 AND selektion.kndnr = xkundenadresse.kndnr Warum verwendest Du mal einen Tabellenalias mal nicht Falls es sich bei xkundenadresse nicht um einen Alias handelt, dann fehlt ein , dazwischen, ansonsten ist das kein JOIN aber trotzdem syntaktisch korrekt. Dim
  3. Naja die Turing Maschine wird es auch nach dem Studium noch geben. Die mathematischen Grundlagen, Complierbau etc werden auch noch so bestehen bleiben. Meiner Meinung nach ist die IT Branche sowies lange nicht so schnelllebig wie sie es selbst immer von sich behauptet. In vielen Fällen ist es alter Wein in neuen Schläuchen. Und wirklich produktiv eingesetzt wird sowieso nur ein Bruchteil von dem was es alles gibt. Dim
  4. Ja auf jeden Fall. Es ist besser sich nicht mit solchen Dingen zu beschäftigen und zu hoffen, dass niemand anderes es merkt. Mal im Ernst: In jeder Firma ist es wichtig solche Lücken zu erkennen. Und wenn es sich nicht grade um ein default Passwort gehandelt hat, dann kann man das schon erwähnen. Besser als: hey ich kann XP installieren. :uli Dim
  5. Evtl wär's auch eine Möglichkeit, dass Du das ganze mit Openoffice machst. Ist von der Oberfläche her relativ ähnlich und wenn Du kein VBA brauchst dann sollte das kein Problem sein. Die Skripte zum anlegen der Tabellen, Abfragen etc. speicherst dir und führst sie dann unter Access nochmal aus. Besser als nichts und der Lerneffekt was Datenbanken betrifft sollte identisch sein. Dim
  6. Bei ebay gibt es noch einige Office 2000 Angebote. Kosten so ab 170 Euro. Dim
  7. Ließ dieses Buch (das im übrigen als das deutschsprachige Standardwerk gilt), dann kannst deine tolle Applikation direkt selber schreiben. Dafür das Du es nicht mal gelesen hast weißt Du ja ziemlich gut bescheid über den Inhalt. Dim
  8. www.javabuch.de - Das Handbuch der Java-Programmierung Dim
  9. Ich hab leider keine Ahnung was Du genau meinst. Eine Tabelle kann man nicht "anklicken". Erklär doch mal, was das für ein Programm ist, welche Datenbank Du verwendest etc. Dim
  10. dr.dimitri

    C++ Syntax

    Nun ja C/C++ ist nun mal keine bildliche Sprache und die "In 21 Tagen "-Reihe ist soo schlecht auch wieder nicht. Vielleicht wär das was für dich. Dim
  11. 500 Euro für Lebensmittel? Welche Lebensmittel kaufst Du denn so? Dim
  12. Schreib den generierten String doch in eine Tabelle. Dann kannst z.B. für jeden Tigger eine eigene Zeile anlegen und dir ggf. für genau einen bestimmten den String selektieren. Das CREATE kannst Du per execute immediate ausführen: execute immediate dein_trigger_string; Beachte aber, dass execute immediate Befehle maximal 32K lang werden dürfen. Dim
  13. Was hat das mit SQL und Datenbanken zu tun? Der Code gehört doch eher ins Basic Forum. Dim
  14. Grundsätzlich liegt das Urheberrecht bei der Person (juristisch oder natürlich) die das Programm implemetiert bzw. dafür bezahlt hat. Wie Du darauf kommst, dass Algorithmen generell Allgemeingut sind weiß ich nicht. Daher musst Du, wenn Du dich absichern willst, in jedem deiner Fälle sicherstellen, dass jedes der Werke von dir veröffentlicht werden darf. Dies kann durch eine expliziete schriftliche Erlaubnis des Rechteinhabers geschehen oder das Werk wurde bereits unter einer entsprechenden Lizenz veröffentlich (z.B. GPL). Dim
  15. Wegen dem Geld würd ich mir jetzt keine allzugroßen Sorgen machen. Ohne jetzt einen Aufruf zu einer Straftat machen zu wollen: Nimms einfach mit. Es werden ja keine Tausende von Euro damit umgesetzt werden. Viel mehr würde mir Sorgen machen, dass er es weiterverkaufen möchte und damit auch ein gewisser Supportaufwand entsteht (immerhin wurde ja dafür bezahlt und Bugs sind in jedem Programm). Dann kommen ggf. noch Änderungswünsche etc etc. Das solltest Du ebenfalls bedenken. Dim
  16. Naja ich kann das schon verstehen wenn er unzufrieden ist. Wenn ich mir hier die Projektarbeiten der FISIs so ansehe, dann erkenn ich den Aufgabenbereich eines FIAE überhaupt nicht wieder. Insofern könnte es da schon zu Problemen kommen, denn ich weiß nicht ob ein FISI als Abschlussprojekt das Anpassen eines SAP Systems einreichen kann. Virtuelle Maschienen hin oder her - wenn es als FISI nicht zu tun gibt, kannst ja evtl. drüber nachdenken den Zweig hin zur AE zu wechseln (sofern das möglich ist). Dim
  17. Hinzugefügt wird nichts - in diesem Script wird nur die DDL generiert aber nicht ausgeführt. Dim
  18. Wir verwenden einen eigenen Parser und Velocity Templates. Allerdings kann man damit auch noch ein bissl mehr machen. Für deine Zwecke kann man das mit einfachem PL/SQL generieren: CREATE OR REPLACE procedure create_triggerddl is l_triggerDDL VARCHAR2(32000); CURSOR c_tables is SELECT table_name FROM user_tables; CURSOR c_columns(p_tablename VARCHAR2) IS SELECT column_name FROM user_tab_cols WHERE table_name=p_tablename; l_tables c_tables%ROWTYPE; l_pkName varchar2(32); l_trigName VARCHAR2(30); BEGIN FOR l_tables IN c_tables LOOP --Name des PK herausfinden SELECT column_name INTO l_pkName FROM user_constraints a, user_cons_columns b WHERE a.constraint_name=b.constraint_name AND a.table_name=l_tables.table_name AND a.constraint_type='P'; --Den Trigger Stringenerieren l_trigName:='TRG_'||SUBSTR(l_tables.table_name,1,26); l_triggerDDL:='CREATE OR REPLACE TRIGGER '||l_trigName||CHR(13) || 'BEFORE DELETE ON '||l_tables.table_name||CHR(13) ||'FOR EACH ROW '||CHR(13)||'DECLARE' ||CHR(13) || 'l_histData varchar2(4000); '||CHR(13)||'BEGIN'||CHR(13); FOR l_columns IN c_columns(l_tables.table_name) LOOP l_triggerDDL:=l_triggerDDL||'l_histData:=l_histData||:OLD.'||l_columns.column_name||';'||CHR(13); END LOOP; l_triggerDDL:=l_triggerDDL||'INSERT INTO visman.visdat_log(cadid,tablename,loguser,logdate, fieldvalues)'|| 'VALUES(:OLD.'||l_pkName||','''||l_tables.table_name||''',USER,sysdate,l_histData);'||CHR(13)|| 'END '||l_trigName||';'||CHR(13)||'/'; END LOOP; --dbms_output.put_line(l_triggerDDL); --Geht nur ab 10g. Vorher ist die Länge auf 255 Zeichen beschränkt END; / Das sollte schon mal ein Grundgerüst sein, auf dem Du aufbauen kannst. Dim
  19. Hi, darum habe ich ja auch gesagt generieren und nicht einzeln schreiben. Wir haben ca. 200 Tabellen und alle Trigger werden generiert. Aber seis drum ich muss ja nicht damit leben Zu Deinem Fehler: Du hast ein Komma zuviel: CREATE OR REPLACE PROCEDURE LogSachDat( p_CADID VARCHAR2 p_PKColumn VARCHAR2, p_TableName VARCHAR2), <----- IS Zum Execute immediate: Du solltest Bindvariablen verwenden: v_Statement := 'SELECT '||v_Column||' FROM '||p_TableName||' WHERE '||p_PKColumn||' = :1'; EXECUTE IMMEDIATE v_Statement INTO v_Value USING p_CADID; Dim PS: Das ändert natürlich nichts daran, dass Du, sofern Du keinen BEVORE Trigger verwendest nichts finden wirst. und es auch nicht notwendig ist, da Oracle schon alles liefert was Du brauchst.
  20. Hi, versteh ich das richtig? Du versuchst den Datensatz der gerade aus der Tabelle gelöscht wurde zu selektieren? Logik? In einem Delete Trigger bekommst Du über die :OLD Variable immer alle Spalten und Werte automatisch geliefert - ein nachselektieren ist daher nicht nötig (und auch falsch). Machst Du soe twas im Trigger selbst, dann bekommst Du von Oracle direkt eine auf die Finger: ORA-04091: Table xyz is mutating, trigger/function may not see it Ausserdem halte ich es für extrem unperformant bei jedem delete aus all_tab_columns dynamisch ein SQL zusammenzubauen, welches dann wiederum nicht mal Bindvariablen verwendet. Wir verwenden auch Trigger zur Historisierung allerdings generieren wir uns für jede Tabelle einen spezifischen Trigger, der dann tabellenbezogen genau das macht was er soll - und zwar hartcodiert (bzw. hartgeneriert ). Dim PS: EXECUTE IMMEDIATE ist deutlich einfacher zu lesen als die Sachen aus dem DBMS_SQL Package.
  21. Und wie sieht's mit Gehalt, Urlaubsgeld, Wochenarbeitszeit, Sonderzahlungen, sonstige soziale Leistungen wie VWL, Betriebsrente, etc etc aus? Dim
  22. Nun als einer der schon länger in einem größeren Projekt unterwegs ist (ca. 20 direkte Mitarbeiter, >10 Millionen € Budget) kann ich Dir sagen, dass Du kein Geld für nix ausgeben solltest. Jedes Projekt hat eine gewisse Eigendynamic und eigene Vorstellungen von dem was an Prozessen laufen muss. Frag deinen PL, TP oder einen der schon länger dabei ist wenn Du Fragen hast. Ein Buch von XY wird dir nicht helfen - wie auch - der Autor kennt Deine Firma und Dein Projekt nicht. Dim
  23. Auch ich habe nicht so recht verstanden was Du machen möchtest, aber ist falsch geschrieben. Der Befehl lautet UPDATE mit nur einem P Des weiteren ist ein Alias der genauso heißt wie die Tabelle sinnlos. Dim
  24. Ja, das ist der Ausführungsplan den der Optimizer errechnet hat. Das ist die Anzahl Zeilen und Bytes die der Optimizer vermutet. Allerdings wurden meine Tabellen nicht analysiert und daher basieren diese Zahlen auf Standardwerten die der Optimizer in diesem Fall verwendet - sind also in diesem Beispiel nicht mal annähernd korrekt. 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...