Ich schreibe ein Perl-Skript, das Daten aus wenigen Tabellen in DB1 in Tabellen in DB2 kopiert. Ich habe eine Tabelle in DB3, die Einfügeabfrage für jede in DB2 vorhandene Tabelle enthält.Kopieren von Daten von einem DB in einen anderen DB
Unten finden Sie eine Abfrage für eine Tabelle.
Insert into ACTION_BLOCK
(ACTION_BLOCK_ID, RULE_EXPR_ID, ACTION_BLOCK_ORDER)
Values();
Ich dachte an
- Lesen von Daten aus DB1 für einen Tisch und Last Ergebnis einer Hash unter Logik implementieren.
- Für jedes Element in der Hash-
- Ersetzen Werte() Schlüsselwort in Insert-Abfrage mit VALUES ('Daten in hash')
- das Insert in DB2 Abfrage ausführen.
Aber Daten in DB könnte auch enthalten Datum. In diesem Fall kann ich values()
Schlüsselwort in der Frage mit values('data in hash')
nicht direkt ersetzen, da ich das Format des Datums erwähnen muss (wie dd\mm\yyyy
nach dem Wert). Kann mir jemand helfen, diese Herausforderung zu meistern.
Um es unten zB mehr betrachten klar .:
DB1
undDB2
eine TabelleACTION_BLOCK
genannt haben. Ich muss Daten inDB1_ACTION_BLOCK
Tabelle zuDB2_ACTION_BLOCK
Tabelle kopieren.
Nach meiner Logik, ich wähle INSERT-Abfrage für ACTION_BLOCK
Tabelle von DB3
, die wie unten sein wird.
Insert into ACTION_BLOCK
(ACTION_BLOCK_ID, RULE_EXPR_ID,RULE_DATE,ACTION_BLOCK_ORDER)
Values();
In der obigen Abfrage ersetze ich die „Werte()“ mit-ten Daten keyword ich von DB1
bekam, die, wie unten dargestellt ist:
values(01,02,02/02/2016,09);
als das Datumsformat Dies wirft mir Fehler nicht richtig. Im Idealfall sollte es wie unten dargestellt werden:
values(01,02,to_date('02/02/2016','mm/dd/yyyy'),09);
Aber meine Hash, die die Daten von DB1
enthalten müssen nur das Datum ohne dass to_date
Schlüsselwort und Format.
Ich hoffe, dieses Beispiel zeigt das Problem deutlich.
Dies ist ein wenig unklar. Kannst du ein vollständiges Beispiel mit Sachen erstellen, die in allen drei Datenbanken enthalten sind und was die erwartete Ausgabe sein soll? – simbabque
Sie sagen, dass 'DB3' tatsächlichen SQL-Code enthält? – Borodin
DB3 enthält Einfügeabfragen für jede Tabelle in DB2. – nithin