Ich habe das folgende Problem:
Ich wollte einen Materialized View (MV) um eine Spalte erweitern.
Also in Toad das Script des MV in den SQL-Editor gestellt, den MV gedropt und
im Create-statement die neue Spalte (TOCCID) den SELECTs zugefügt:
[highlight=sql]
CREATE MATERIALIZED VIEW EXTERNAL_RESULTS_MV
TABLESPACE USERS
NOCACHE
NOLOGGING
NOPARALLEL
REFRESH COMPLETE
START WITH TO_DATE('24-Aug-2007','dd-mon-yyyy')
NEXT TRUNC(SYSDATE) + 1
AS
SELECT AV.ID,'AB' RESULTSOURCE, NVL(S.ID, -2) SAMPLE_ID, NVL(S.NAME, SAMPLE_NAME||' ( external )') SAMPLE_NAME, Format_Iso_Number(ISOLATE) ISOLATE_NUMBER, EXPERIMENT_DATE,
NVL(O.ID, -2) OPERATOR_ID, NVL(O.TEXT, OPERATOR) OPERATOR, RESULT, UNIT, RESULT_TYPE,
Is_Result_Reportable(RESULTSTATUS, TESTSTATUS) RESULT_REPORTABLE, RESULTSTATUS||'; '||TESTSTATUS STATUS, WELL_NO REPLICATE_NO,
COMPOUNDS, AV.COMMENTARY, 1 DIGITALS, AV.TOCCID
FROM SAMPLE S, OPERATOR o, PYRO_RESULTS_VIEW@LINK AV
WHERE AV.SAMPLE_NAME LIKE S.NAME (+)
AND AV.OPERATOR LIKE O.ACRONYM (+)
UNION
SELECT AV.ID,'AB', NVL(S.ID, -2), NVL(S.NAME, SAMPLE_NAME||' ( external )'), Format_Iso_Number(ISOLATE), EXPERIMENT_DATE,
NVL(O.ID, -2), NVL(O.TEXT, OPERATOR), RESULT, UNIT, RESULT_TYPE,
Is_Result_Reportable(RESULTSTATUS, TESTSTATUS), RESULTSTATUS||'; '||TESTSTATUS, WELL_NO, COMPOUNDS, AV.COMMENTARY, 3, AV.TOCCID
FROM SAMPLE S, OPERATOR o, EC50_RESULTS_VIEW@LINK AV
WHERE AV.SAMPLE_NAME LIKE S.NAME (+)
AND AV.OPERATOR LIKE O.ACRONYM (+);
[/highlight]
Beim Ausführen wird dann ORA-00904 Ungültiger Spaltenname geworfen.
Wenn ich die SELECT-Statements einzeln ausführe, scheint keine Fehler aufzutreten.
Hat irgendjemand eine Idee, wo der Fehler liegen könnte ?
Ich wollte einen Materialized View (MV) um eine Spalte erweitern.
Also in Toad das Script des MV in den SQL-Editor gestellt, den MV gedropt und
im Create-statement die neue Spalte (TOCCID) den SELECTs zugefügt:
[highlight=sql]
CREATE MATERIALIZED VIEW EXTERNAL_RESULTS_MV
TABLESPACE USERS
NOCACHE
NOLOGGING
NOPARALLEL
REFRESH COMPLETE
START WITH TO_DATE('24-Aug-2007','dd-mon-yyyy')
NEXT TRUNC(SYSDATE) + 1
AS
SELECT AV.ID,'AB' RESULTSOURCE, NVL(S.ID, -2) SAMPLE_ID, NVL(S.NAME, SAMPLE_NAME||' ( external )') SAMPLE_NAME, Format_Iso_Number(ISOLATE) ISOLATE_NUMBER, EXPERIMENT_DATE,
NVL(O.ID, -2) OPERATOR_ID, NVL(O.TEXT, OPERATOR) OPERATOR, RESULT, UNIT, RESULT_TYPE,
Is_Result_Reportable(RESULTSTATUS, TESTSTATUS) RESULT_REPORTABLE, RESULTSTATUS||'; '||TESTSTATUS STATUS, WELL_NO REPLICATE_NO,
COMPOUNDS, AV.COMMENTARY, 1 DIGITALS, AV.TOCCID
FROM SAMPLE S, OPERATOR o, PYRO_RESULTS_VIEW@LINK AV
WHERE AV.SAMPLE_NAME LIKE S.NAME (+)
AND AV.OPERATOR LIKE O.ACRONYM (+)
UNION
SELECT AV.ID,'AB', NVL(S.ID, -2), NVL(S.NAME, SAMPLE_NAME||' ( external )'), Format_Iso_Number(ISOLATE), EXPERIMENT_DATE,
NVL(O.ID, -2), NVL(O.TEXT, OPERATOR), RESULT, UNIT, RESULT_TYPE,
Is_Result_Reportable(RESULTSTATUS, TESTSTATUS), RESULTSTATUS||'; '||TESTSTATUS, WELL_NO, COMPOUNDS, AV.COMMENTARY, 3, AV.TOCCID
FROM SAMPLE S, OPERATOR o, EC50_RESULTS_VIEW@LINK AV
WHERE AV.SAMPLE_NAME LIKE S.NAME (+)
AND AV.OPERATOR LIKE O.ACRONYM (+);
[/highlight]
Beim Ausführen wird dann ORA-00904 Ungültiger Spaltenname geworfen.
Wenn ich die SELECT-Statements einzeln ausführe, scheint keine Fehler aufzutreten.
Hat irgendjemand eine Idee, wo der Fehler liegen könnte ?
Comment