Fehlerhafte übertragen beim insert in Tabelle aus View

blackbolt

Benutzer
Beiträge
6
Hallo zusammen,

ich habe das Problem, dass bei

insert into Tabelle
(select * from View) ;

ein Datenfeld nicht korrekt übergeben wird.
In der View hat das Feld Anzahl den Wert 133
Nach dem Insert in der Tabelle aber den Wert 0.

Alle anderen Datenfelder werden korrekt übergeben.
Das Feld Anzahl ist als Number deklariert.

Hat jmd eine Idee woran es liegen könnte?
Danke im Voraus.
 
Werbung:
Hallo zusammen,

ich habe das Problem, dass bei

insert into Tabelle
(select * from View) ;

ein Datenfeld nicht korrekt übergeben wird.
In der View hat das Feld Anzahl den Wert 133
Nach dem Insert in der Tabelle aber den Wert 0.

Alle anderen Datenfelder werden korrekt übergeben.
Das Feld Anzahl ist als Number deklariert.

Hat jmd eine Idee woran es liegen könnte?
Danke im Voraus.

Stimmen die Datentypen in VIEW und Zieltabelle überein?
 
Stimmen die Datentypen in VIEW und Zieltabelle überein?

Ich weiß nicht, wie streng Oraggle ist, PG würde bei inkompatiblem Datentypen mal schon meckern:

Code:
test=*# create table a (i text);
CREATE TABLE
test=*# insert into a values ('4711');
INSERT 0 1
test=*# create view view_a as select * from a;
CREATE VIEW
test=*# create table b (i int);
CREATE TABLE
test=*# insert into b select * from view_a;
ERROR:  column "i" is of type integer but expression is of type text at character 22
HINT:  You will need to rewrite or cast the expression.
STATEMENT:  insert into b select * from view_a;
ERROR:  column "i" is of type integer but expression is of type text
LINE 1: insert into b select * from view_a;
  ^
HINT:  You will need to rewrite or cast the expression.
test=*# insert into b select i::int from view_a;
INSERT 0 1
test=*# select * from b;
  i
------
 4711
(1 row)
 
Werbung:
Zurück
Oben