Zum Inhalt springen

johnhaltonx

Mitglieder
  • Gesamte Inhalte

    189
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von johnhaltonx

  1. Schade, für mysql und für Oracle hätte ich ne Idee gehabt mysql: insert ignore INSERT IGNORE INTO t1 SELECT NULL, t2.b FROM t2 ORDER BY t2.a; Oracle: Merge MERGE INTO bonuses B USING ( SELECT employee_id, salary FROM employee WHERE dept_no =20) E ON (B.employee_id = E.employee_id) WHEN MATCHED THEN UPDATE SET B.bonus = E.salary * 0.1 WHEN NOT MATCHED THEN INSERT (B.employee_id, B.bonus) VALUES (E.employee_id, E.salary * 0.05); für Access: einen unique constraint auf die entsprechende Spalte legen und mit ignore errors importieren ....alle spalten wo die zahl schon vorhanden ist werden ausgefehlert ... Aber keine Ahnung ob das so imt Access funktioniert ... Viel Glück
  2. Es gibt neue einträge in der variablen Tabelle die nicht mit den Einträgen der statischen Tabelle gelinkt sind, ein Fk ist ja logischerweise NOT NULL, also kann man diese "Optionale" Verknüpfung damit nicht darstellen, weil nur ein Teil der Records in der variablen Tabelle mit denen aus der Statischen über den Fk verbunden ist.
  3. Ich schätze das du mysql verwendest? -- statische Tabelle CREATE TABLE P1 ( PKID VARCHAR(11) NOT NULL AUTO_INCREMENT, name VARCHAR(50) NULL, PRIMARY KEY(PKID) ); -- editierbare Tabelle CREATE TABLE P2 ( PKID2 INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(50) NULL, PKID VARCHAR(11) NULL, PRIMARY KEY(PKID2) ); Die Integrität würde ich über einen Trigger auf P2 sicherstellen, "ON INSERT OR UPDATE" die PKID in P2 optional setzen ( falls es sich um eine Referenz handelt, falls es ein Komplett neuer Eintrag ist eben nicht setzen) Alternativlösung: du erlaubst insert in diese Tabelle grenzt aber die neuen Einträge über ein extra FLAG ab CREATE TABLE P1 ( PKID VARCHAR(11) NOT NULL AUTO_INCREMENT, name VARCHAR(50) NULL, typ ENUM ('S','V') NULL, -- S - Statisch, V - Variabel PRIMARY KEY(PKID) ); Und erlaubst/verbietest den Edit Zugriff basierend auf dem FLAG. Das auseineandersortieren der "offiziellen" Einträge geht ja dann auch FALG-basiert mit einem einfachen SELECT. Mir gefällt die Variante 2 besser, falls sihc das it deinen Anforderungen vereinbaren läßt
  4. Ich würde sagen das kommt auf dem Umfang der Hilfe Seiten an. Wenn viel Text ist würde ich ein eigenes fenster aufmachen, wenns wenig ist vllt in einer Fußzeile oder wie eine Sidebar einblenden. evtl sogar als tooltip wenns nur ne Anmerkung zu einem Control oder Button is
  5. vor der abfrage in das sql script für SQLPLUS ( spool ist ein sqlplus befehl, kein standard SQL) ein spool pfad_auf_dem_client/dateiname; select * from table; end spool; Was die vor und nachteile angeht, um welche Datenmengen geht es denn ? Bei großen Datenmengen muss Spool alles über das Netzwerk zum client übertragen, während UTL_File auf dem Server schreibt. btw. Welche Oracle Version? PL/SQl Lösung mit UTL_File: create or replace function dump_csv( p_query in varchar2, p_separator in varchar2 default ',', p_dir in varchar2 , p_filename in varchar2 ) return number AUTHID CURRENT_USER is l_output utl_file.file_type; l_theCursor integer default dbms_sql.open_cursor; l_columnValue varchar2(2000); l_status integer; l_colCnt number default 0; l_separator varchar2(10) default ''; l_cnt number default 0; begin l_output := utl_file.fopen( p_dir, p_filename, 'w' ); dbms_sql.parse( l_theCursor, p_query, dbms_sql.native ); for i in 1 .. 255 loop begin dbms_sql.define_column( l_theCursor, i, l_columnValue, 2000 ); l_colCnt := i; exception when others then if ( sqlcode = -1007 ) then exit; else raise; end if; end; end loop; dbms_sql.define_column( l_theCursor, 1, l_columnValue, 2000 ); l_status := dbms_sql.execute(l_theCursor); loop exit when ( dbms_sql.fetch_rows(l_theCursor) <= 0 ); l_separator := ''; for i in 1 .. l_colCnt loop dbms_sql.column_value( l_theCursor, i, l_columnValue ); utl_file.put( l_output, l_separator || l_columnValue ); l_separator := p_separator; end loop; utl_file.new_line( l_output ); l_cnt := l_cnt+1; end loop; dbms_sql.close_cursor(l_theCursor); utl_file.fclose( l_output ); return l_cnt; end dump_csv; / You would use that for example like this: create or replace procedure test_dump_csv as l_rows number; begin l_rows := dump_csv( 'select * from all_users where rownum < 25', ',', '/tmp', 'test.dat' ); end; /
  6. utl_file schreibt auf dem datenbankserver in ein Verzeichnis Spool schreibt auf dem Client Wo möchtest du das File ablegen ? Und: wieso ist spool veraltet? Um Welche Datenmengen geht es ?
  7. nicht zwingend es kann auch sein das am ende des Datenfiles noch ein extent belegt ist auch wenn der größte teil des DBF-Files leer ist, verkleinern geht immer nur bis zum letzten verwendeten Extent. Welche Oracle Version? ab 9i könntest du die Objekte in dem Tablespace per "ALTER TABLE name MOVE neuer Tablespace name" in einen neuen TS umziehen und den zu großen alten hinterher löschen. select für TS angaben select nvl(b.tablespace_name, nvl(a.tablespace_name,'UNKNOWN')) "Tablespace", kbytes_alloc "Allocated MB", kbytes_alloc-nvl(kbytes_free,0) "Used MB", nvl(kbytes_free,0) "Free MB", ((kbytes_alloc-nvl(kbytes_free,0))/kbytes_alloc) "Used", data_files "Data Files" from ( select sum(bytes)/1024/1024 Kbytes_free, max(bytes)/1024/1024 largest, tablespace_name from sys.dba_free_space group by tablespace_name ) a, ( select sum(bytes)/1024/1024 Kbytes_alloc, tablespace_name, count(*) data_files from sys.dba_data_files group by tablespace_name )b where a.tablespace_name (+) = b.tablespace_name order by 1
  8. /var/lib/mysql ..... aber wozu mußt du das wissen?
  9. Ein Format verwenden was dein schnittprogramm versteht und erst danach in divx kodieren....? vdr (nimmt mpeg2 auf oder?) --> schneiden --> divx --> gucken
  10. Hast du vllt ein sonderzeichen im passwort oder account? und den zeichensatz beim IE auf was anderem stehen als beim Opera und FF?
  11. schonmal mit Nagios versucht? www.nagios.org überwacht Hosts, Netzwerke, Dineste, Applikationen
  12. http://www.bacula.org/ Betriebssystemübergreifende Backupsoftware, der Server muss allerdings eine Linux-Kiste sein glaube ich... Bißchen komplexe Architektur, dafür sehr flexibel
  13. Welche Oracleversion, mittlerreweile kannst du statt decode CASE nehmen. select decode (hostatus, 'S', 'Stationär', 'A', 'Ambulant', 'T', 'Sonstige', hostatus) as "Fall-Status"; from hohospitalisation; where hoaufnahmedatum > '01.01.2004' and hoaufnahmedatum < '31.12.2004'; SELECT CASE WHEN hostatus='S' THEN 'Stationär' WHEN hostatus='A' THEN 'Ambulant' WHEN hostatus='T' THEN 'Sonstige' ELSE hostatus='Fehler' as "Fall-Status" END, sum(hostatus) as Anzahl FROM hohospitalisation; WHERE hoaufnahmedatum > '01.01.2004' and hoaufnahmedatum < '31.12.2004' GROUP BY hostatus;
  14. johnhaltonx

    SQL Scripte

    eine datei die auf .sql endet und in der sql anweisungen drinstehen .....???
  15. johnhaltonx

    Datentyp

    unendlich gibt es nicht ...... Welche Datenbank? Welche Version? bei ntext/nvarchar würde ich jetzt mal oracle tippen.... und auf Textdaten Alte Datentypen oracle: long,raw (max 2Gig) --> nclob Die maximale Dateigröße wird dabei durch das Betriebssystem vorgegeben. (Filesize) oder BFILE Für BFILEs das Maximum grundsätzlich auf 2^64 - 1 Bytes beschränkt! 16380 Exabytes .... das sollte reichen
  16. Starte knoppix versuche die partition des Festplattensystems zu mounten (sollte knoppix automatisch machen) dann ein chroot /mountpunkt zum "/" FS/bin/bash dann bist du in das alte system gechrootet und kannst von da versuchen über /sbin/grub-install /dev/hdx (hda,hdb was auch immer das boot device ist) grub neu zu installieren oder in /boot/grub in der config nach fehlern zu suchen PS: die Pfade sind teilweise aus dem Gedächnis, die dateinamen müßten aber stimmen, also im zweifelsfall suchen , hab hier gerade kein Debian zur hand..
  17. Laufen die Webserver unter UNiX oder Windows? Und wenn das egal oder ausgeglichen ist... womit kennst du dich besser aus.? Wenn UNIX --> würde ich eher schwanken ob CIFS oder NFS Wenn Windows --> CIFS
  18. Also lasttechnisch kommt es drauf an was an NAS Diensten in Anspruch genommen wird, prinzipiell würde ich davon abraten beides zu mischen. Selbst wenn Hardware Raid verwendet wird, braucht die Maschine CPU-Zeit für die Filesharing Dienste+Zugriffe.... Es bleibt die Frage wie stark diese Last ist und ob die Datenbank damit leben kann... Im Falle eines Performance Problems muss man eben beides checken, nicht das ein User 10 Files parallel vom Fileserver zieht (Gbit) und damit die DB ausbremst .... Also generell : nein Aber unter Berücksichtigung verfügbarer Hardware ... Kosten....Management Entscheidungen und sonstigen Katastrophen .... möglich .... macht aber letztendlich mehr Arbeit als es an Hardwarekosten einspart PS: questions/sek sind Transaktionen/sekunde?
  19. Den Datentyp der ja/nein Felder in Boolean konvertieren? Oder bei deinen selects die 'ja' 'nein' strings mit CASE umbiegen .... was die unschöne Lösung wäre..... select CASE bool_field WHEN 'ja' THEN 'true' WHEN 'nein' THEN 'false' ELSE 'undefined' from tbl; Verwende einfach den korrekten Datentyp für das verwendete RDBMS
  20. Die Tablespaces sollten angelegt sein, sonst haut der Import den kram in den Default Tablespace, schlimmstenfalls ins System Nachschauen wie die auf der Quellmaschine hießen und mit passenden Größen anlegen. ( Tablespaces werden nur bei Full Exports mit exportiert und beim Import neu erzeugt - Vorsicht: imp überschreibt bestehende TS mit gleichem Namen gnadenlos) ------------------------------------------------------------------------- imp If the parameter touser is used and (?) the export was made with FULL=YES, the users must already be created in the target database. ------------------------------------------------------------------------- Und danach einfach mal den import reinjagen und auf Fehler achten. Wenns nicht klappt das zielschema plätten, Fehler beheben und nochmal versuchen
  21. Friert er nur lokal ein? d.h. komst du von extern per ssh noch drauf? dann könntest du mal ein "top" oder so machen und schauen ob irgendwelche prozesse die CPU lahmlegen. Ansonsten einfach mal im system-log nachsehen (/var/log/messages) oder wenn per ssh während des problems eingeloggt ein "dmesg".
  22. Nun das kommt auf den Einsatzzweck an ... Was läuft auf der DB, wieviele User gleichzeitig, Batch processing oder OLTP-Abfragen ... Prinzipiell: RAM, CPU, I/O Kapazität sollten für die Aufgabe angemessen sein, wenn du referentielle Integrität brauchst INNODB Speicherengine nehmen. Dafür sorgen das die Applikationen nur soviel Arbeit machen wie nötig (vernünftige where Bedigungen, keine Karthesen, Indexe auf join/such-felder, select count(*) auf jeder Applikationsseite nur damit die gesamtzahl der records drinsteht ---> bäh ) das war das was mir auf anhieb eingefallen ist Die meisten Angaben sind aber DB unabhängig (komm eher aus dem Oracle Umfeld ) mal von der INNODB Engine abgesehen Gute seite/Buch zu Oracle, gibt aber einen guten Eindruck über DB entwicklung im allgemeinen: http://asktom.oracle.com is englisch und man muss ne menge lesen bis man ein Gefühl dafür kriegt wie as ganze funktioniert, aber die Informationen sind gut und auch gut durchsuchbar. Alternativ: Effective Oracle by Design, von TKyte, steht zwar Oracle im Buchtitel aber die Hälfte is Best Practices für DB Entwicklung und Administration allgemein, abgesehen davon das es auch noch gut geschrieben ist...
  23. Versuchen sie aufzurufen nud schauen was du fürn Rückgabewert kriegst, wenn Fehler dann gitbs sie nicht . Nicht elegant aber sollte funktionieren
  24. Hast du vielleicht die Datei als root editiert und nun gehört die Datei root nud der apache hat keine leserechte mehr? schau mal die Filesystemberechtigungen nach
  25. dann kämen alle "What" zuerst oder ? order by Properties.activity_id asc, Properties.property_name asc sollte erst nach Nummer und dann den Namen alphabetisch aufsteigend sortieren

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...