2016-03-31 20 views
0

Ich versuche, die Werte einer Select-Abfrage einfügen, die in eine Spalte gehen müssen, in eine andere Tabelle zusammen mit anderen Spalten wie etwas weiter unten. Datentypen für die Spalten.Einfügen in eine Tabelle aus einer Select-Abfrage in Oracle

col1-Nummer, col2-Nummer, col3-varchar, col4-date, COL5-char (1), Sp6-char (1)

insert into table1 (col1, col2, col3, col4, col5, col6, col7) 
select (uid, 22, 'HTML', sysdate,'null','null','N') 
from (select query here) 

aber wenn ich die obige Abfrage ausführen ich erhalte ein Fehler - ORA-01858: Es wurde ein nicht numerisches Zeichen gefunden, bei dem in der Nähe von Zeile 2 der obigen Abfrage ein numerischer Wert erwartet wurde. Kann mir bitte jemand sagen, was falsch ist oder ob es einen besseren Weg gibt. Danke!

+3

was den Datentyp col1, ... col5? Dieser Fehler bezieht sich auf die aktuelle Konvertierung mithilfe eines Datumsformatmodells. – mathguy

+2

Bitte bearbeiten Sie Ihre Frage und fügen Sie die komplette 'CREATE TABLE' Anweisung für' table1' hinzu. Nicht verwandt, aber: die Klammern um die Spaltenliste im 'select'-Teil sind völlig nutzlos. –

+2

Vermutlich ist "col1" ein Datum und die Unterabfrage, die Sie nicht angezeigt haben, gibt eine Zeichenfolge zurück, die nicht implizit in ein Datum konvertiert werden kann. Du hast dich verändert und versteckt, obwohl es schwer ist zu sagen, was du wirklich tust. Momentan haben Sie zu viele Klammern, was ORA-00907 mit dem, was Sie gezeigt haben, verursachen würde. Es wäre viel einfacher, wenn Sie Ihre tatsächliche Abfrage und die Tabellendefinition zeigen würden. –

Antwort

3

'null' ist eine Zeichenfolge. Vermutlich ist entweder col5 oder col6 eine Zahlenspalte, und wir können diese Zeichenfolge nicht auf eine Zahl umwandeln.

keinen Wert einzufügen in die Spalten der null Schlüsselwort wie folgt verwenden:

insert into table1 (col1, col2, col3, col4, col5, col6, col7) 
select (uid, 22, 'HTML', sysdate, null, null,'N') 
from (select query here) 

Alternativ sie aus dem Einsatz Vorsprung entfernen:

insert into table1 (col1, col2, col3, col4, col7) 
select (uid, 22, 'HTML', sysdate, 'N') 
from (select query here) 
Verwandte Themen