ORA-00932: inkonsistente Datentypen: erwartete TIMESTAMP bekam TIMESTAMP
Den folgenden Befehl ausführen:
CREATE OR REPLACE TYPE MT_TIMESTAMP_ERROR_TYPE
IS OBJECT
(
ID VARCHAR(10),
TIMEST TIMESTAMP
)
;
CREATE TABLE MT_TIMESTAMP_ERROR_TABLE
(
ecid VARCHAR(10),
startdate DATE
)
;
CREATE OR REPLACE VIEW MT_TIMESTAMP_ERROR_VIEW
OF MT_TIMESTAMP_ERROR_TYPE
WITH OBJECT IDENTIFIER(ID)
AS
(
select
ecid AS ID,
CAST(startdate as TIMESTAMP) AS TIMEST
from MT_TIMESTAMP_ERROR_TABLE
);
Bekam ich:
Error at Command Line : 23 Column : 5
Error report -
SQL Error: ORA-00932: inconsistent datatypes: expected TIMESTAMP got TIMESTAMP
00932. 00000 - "inconsistent datatypes: expected %s got %s"
*Cause:
*Action:
Oracle-version:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit-Produktion
Was kann das problem sein?
Dank!
Grüße,András
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie einen Objekt-Konstruktor für die Ansicht. Die Tabelle enthält zwei Spalten in jeder Zeile. Es enthält ein Objekt, das hat zwei Werte. Also:
Hier ist ein SQL Fiddle.
Alternativ, wenn Sie möchten, extrahieren Sie die zwei Felder aus dem Objekt, dann deklarieren Sie nicht den Blick auf ein Objekt wieder:
PS. Ich habe keine Ahnung, warum Oracle gibt so eine verwirrende Fehlermeldung. Es sollte wirklich mehr wie "inkonsistente Datentypen: erwartete MT_TIMESTAMP_ERROR_TYPE bekam TIMESTAMP". Vermutlich ist der Fehler-handling-system ist immer verwirrt auf den verschiedenen Ebenen der Arten.