Zum Inhalt springen

Tabelle


nanunana

Empfohlene Beiträge

Hallo Freunde,

ich habe eine Tabelle erstellt, jetzt möchte ich diese Tabelle befüllen mit datensätzen , die In einem anderen Tabelle stehen, unter der Voraussetzung Spalte1_EINTRAG= xy

ich habe folgendes gemacht

update TAB2

select * from TAB1

Where Spalte1_EINTRAG = xy

ich möchte nur Datensätze mit in die andere Tabelle nehmen , derren ersten Spalteneintrag = xy.

ich danke im voraus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo

es ist eine große Tabelle mit , sag ma mal 100 spalten. die Datensätze, die ich in die andere Tabelle kopieren will,unter der Bedingungen, bestehen nur aus 16 Spalten, oder besser gesagt, strecken sie sich über 16 spalten.

die Grosse Tabelle enthält Dantensdätze mit unterschiedlichen Längen.

ich möchte einfach nicht alle 16 spalten_namen in mein Code haben, ob es da ein anderer Weg gibt ???

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

muss ich nach dem From Tabelle ein "," oder ";" eigeben

Wie kommst du darauf? Meherer Tabellen in FROM werden durch , getrennt aber eine allein braucht weder ein , noch ein ;

where lautet bei Mir: Spalten_Eintrag = xy

Schon mal der erste Fehler: xy ist ein String, daher muss es lauten:

WHERE Spalten_Eintrag = [b]'[/b]xy[b]'[/b]

könntest du mir auch den Befehl syntaktisch beschreiben

INSERT

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Dim,

erstmal Nett von Dir für Deine Hilfe,

ich habe soweit mein SQL-Befehl konstruiert, und nachdem Muster, den du mir gegeben hast.

INSERT INTO deine_tabelle

SELECT spalte1,spalte2,...FROM deine_andere_tabelle WHERE spalten1-Eintrag = 'xy';

mit spalten1-Eintrag meine ich eine kategorie der Strings, ein Wort kann man sagen, das in meiner Spalte1 steht.....muss an der Stelle mein Spaltenname eingeben:::: Where Spaltenname = 'Eintrag';

ich kann immer nocht nicht meine Datensätze in die andere Tabelle koppieren ?

Where Spaltenname = 'Eintrag'; ich habe so versucht, wird trotzdem nicht koppiert in die andere Tabelle.man kann auch so sagen, ich möchte nur Datensätze, die den xy(Eintrag) in der spalte1 aus der grossen Tabelle stehen haben, in die andere Tabelle, die ich schon erstellt habe, koppiert haben.

Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich kapier irgendwie gar nichts mehr.

Du hast doch hoffentlich mein SQL so angepasst, dass es für dich stimmt oder?

spalte1 und spalte2 etc. waren nur Beispielnamen. Du musst natürlich deine eigenen Spaltennamen verwenden!

Poste doch mal dein Statement so wie Du es ausgeführt hast und die Fehlermeldung dazu.

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Dim,

meine Tabelle hat mehrere Spalten, in der ersten Spalte mit dem Namen Städte steht Hamburg, Münschen.....und und. es gibt städte in dieser Spalte,die sich öfter vorkommen, bis jetzt alles klar.

nun nehmen wir Beispiel Die stadt Hamburg, sie ist 4 Mal in dieser Spalte vorgekommen. jetzt möchte ich die 4 Datensätze, in denen Hamburg vorgekommen, in eine andere Tabelle kopieren,diese andere Tabelle habe ich auch schon vorher erstellt.

und so habe ich das gemacht

INSERT INTO (Tabelle, in der ich koppieren möchte)

SELECT Spalte1(städte),spalte2,...FROM (Tabelle, wo Hamburg öfter in der ersten Spalte WHERE Städte= 'Hamburg';

trotzdem werden die Daten nicht in der erstellten Tabelle kopiert. ich hoffe , ich habe dieses Mal gut erklärt.

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Warum postets Du nicht einfach das original Statement so wie Du es ausführt. Einfach reinkopieren und fertig.

Dazu die Fehlermeldung. Oder was meinst Du mit rotzdem werden die Daten nicht in der erstellten Tabelle kopiert. Damit kann ich nichts anfangen. Welche Fehlermeldung tritt auf?

Oder tritt überhaupt keine Fehlermeldung auf? Comittest Du nach dem Insert?

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok. Mald avon abgesehen, dass Du Spalten mit Umlauten drinnen hast (welche DB verwendest Du denn) sollte das doch funktionieren.

Da du keine Fehlermeldung gepostet hast, geh ich mal davon aus, dass das Statement funktioniert.

Logischerweise kann es dann nur zwei Schlussfolgerungen geben:

1. Es gibt einfach keine Sätze in tab1 bei denen städte='Hamburg' ist.

2. Es werden Sätze in tab2 geschrieben, aber Du comittest nicht und nachdem Deine Session beendet ist, wird die Änderung zurückgerolt.

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo dim,

2. Es werden Sätze in tab2 geschrieben, aber Du comittest nicht und nachdem Deine Session beendet ist, wird die Änderung zurückgerolt

was meinst du Mit <Du comittest nicht>?..ich habe über den SQL Loader die Tab 1 importiert, es war kein Problem, ich kann mir die Tabelle auch über den entrprise manager console auch ansehen, das ist ein Oracle9i datenbank, und ich habe auch alle Rechte, daran kann es nicht liegen ? die Tab2 habe ich vor dem Ausführen des Befehl erstellt,sie ist auch in entrprise manager Console zu sehen, SIE WIRD NUR NICHT BEFÜLLT NACHDEM AUSFÜHREN DES BEFEHLES.

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Dim,

es gibt naturlich Sätze, die meine Kriterien entsprechen, ich kann ja meine Datensätze in der Tabelle (tab1) über den Entrprise manager doch ansehen,

alle die Datensätze , die ich über SQL LOADER importiert habe sind drine und Eingetragen, bist du Dir sicher , dass man in der WHERE Spaltenname = ' Hamburg' macht.

Merci

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also wenn Das SQL fehlerfrei durchläuft, Du einem COMMIT danach ausführst damit die Änderungen auch festgeschrieben werden und Sätze vorhanden sind diese aber nicht eingefügt werden - auf welche Schlussfolgerung soll man da jetzt kommen?

Dim

PS: las den Enterprise Manager. Der ist dazu da um die DB zu administrieren und nicht um Daten anzusehen. Lad dir lieber den Oracle SQL Developer runter.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Dim,

kannst du mir sagen, wie ich commiten kann,, ich habe das noch nie gemacht,ist für mich neu, ich bin auch überhaupt in dem Bereich neu !!!

müsste normalerweise den Oracle SQL Devolopper nicht mit installiert sein, weil ich habe eine Komplette Installation gemacht für oracle9i.

Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du führst den Befehl

commit;

aus.

Nein der SQL Developer wird nicht mitgeliefert. Den musst du separat runterladen. Im übrigen gab es den SQLDeveloper noch gar nicht als die Version 9 raus kam ;-)

Du solltest dir aber echt mal ein Buch kaufen, denn wenn es beim Commit schon hapert, dann ist das in etwa so, als ob man ein Auto fährst aber leider nicht weiß wie man es betankt.

Das soll nicht schlecht sein:

Oracle 9i in 21 Tagen

Alternativ die Oracle Doku:

Application Developer's Guide - Fundamentals

Egal was, aber Du musst dich damit eingehend beschäftigen.

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Dim,

wenn ich <Insert to Tab1

Select sp,sp,sp,sp from Tab2> schreibe muss meine tab1_spalten anzahl mit der ausgesuchten Spalten aus Tab2 übereinstimmen , oder ist das egal ? dh selectiert wird die spalte ,und die Spalte, aus Tab2 und diese bitte in die tab1.

ich habe in meiner Tab1 eine neue Spalte erstellt, die soll Eintragfrei bleiben, den Befehl noch ausgeführt, und es konnte nicht geschrieben werden ?

die Fogenden fehler kommen dabei raus :

Fehler: ORA-00926: Schlüsselwort VALUES fehlt

übrigens das Buch habe ich gerade bestellt.

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn die Spaltenanzahl nicht übereinstimmt, dann musst Du Oracle mitteilen welche Spalten Du befüllt haben möchtest:

INSERT INTO tblziel [B](spalte1,spalte2)[/B] SELECT col1,col2 FROM tblquelle;

Du kannst mit dieser Syntax auch nur die 1, 3, und 5 Spalte befüllen. Je nachdem was Du machen möchtest.

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Dim,

es läuft alles soweit gut,,, jetzt habe ich noch eine Frage:

ALTER TABLE Tab2

ADD CONSTRAINT GO_tab2

PRIMARY KEY (ID)

NOLOGGING

dieser Befehl erstellt ein Index auf die Spalte ID mit dem Namen GO_tab2 oder wie ist das zu verstehen...index erstellen lautet normalerweise so:

Create Index Name ON Tablle ( SPALTE).

Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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