| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Re: This drives me mad !!!!
Eric Euerlings wrote:
> Hello , > I'v to migrate from SQL Anywhere 5.0 to Oracle 7.3.3.0. Now I've a problem > that drives me mad: > Is this possible to do in way in Oracle:
[snip]
> Any hints. > > Cheers Eric
Eric,
I could be wrong here, but I think you
are having problems with the 7th (wert) and
12th (esk_wert_benutzer) columns. You may also
want to move your selects into in-line
views.
If you are trying to replace "wert" with wert_ben1.esk_wert, and if wert_ben1.esk_wert IS NULL, then wert_ben2.esk_wert, and if wert_ben2.esk_wert IS NULL then....
Column 7, replace:
isnull(wert_ben1, wert_ben2, wert_ben3, wert_abt,
wert_man, wert_def,
v_einstellung_man_abt_ben.esg_wert)
With:
NVL(wert_ben1.esk_wert,
NVL(wert_ben2.esk_wert,
NVL(wert_ben3.esk_wert,
NVL(wert_abt.esk_wert,
NVL(wert_man.esk_wert,
NVL(wert_def.esk_wert,
NVL(esg_wert, 0)
) ) ) ) ) )
Column 12, replace:
isnull(wert_ben1, wert_ben2, wert_ben3)
With:
NVL(wert_ben1.esk_wert,
NVL(wert_ben2.esk_wert,
NVL(wert_ben3.esk_wert, 0)))
...I am assuming that all the "wert" columns are in v_einstellung_man_abt_ben, and I am using 0 for the sake of example.
I haven't tested this, and I made the assumption that ECOopen.v_einstellung_man_abt_ben.einstellungcode is a unique key, but I believe the script would look something like the following. Forgive the length:
Jay!!!
create or replace view
v_einstellung_wert(mandant,
abteilung,
benutzer,
einstellungcode,
esg_bez,
est_bez,
wert,
esg_wert,
esk_wert_default,
esk_wert_mandant,
esk_wert_abteilung,
esk_wert_benutzer,
esk_wert_benutzer1,
esk_wert_benutzer2,
esk_wert_benutzer3)
as SELECT v_einstellung_man_abt_ben.mandant,
v_einstellung_man_abt_ben.abteilung,
v_einstellung_man_abt_ben.benutzer,
v_einstellung_man_abt_ben.einstellungcode,
v_einstellung_man_abt_ben.esg_bez,
v_einstellung_man_abt_ben.est_bez,
NVL(wert_ben1.esk_wert,
NVL(wert_ben2.esk_wert,
NVL(wert_ben3.esk_wert,
NVL(wert_abt.esk_wert,
NVL(wert_man.esk_wert,
NVL(wert_def.esk_wert,
NVL(v_einstellung_man_abt_ben.esg_wert, 0)
)))))),
v_einstellung_man_abt_ben.esg_wert,
wert_def.esk_wert,
wert_man.esk_wert,
wert_abt.esk_wert,
NVL(wert_ben1.esk_wert,
NVL(wert_ben2.esk_wert,
NVL(wert_ben3.esk_wert, 0))),
wert_ben1.esk_wert,
wert_ben2.esk_wert,
wert_ben3.esk_wert
FROM ECOopen.v_einstellung_man_abt_ben v_einstellung_man_abt_ben,
(select einstellungkunde.esk_wert,
einstellungkunde.einstellungcode
from ECOopen.einstellungkunde
where einstellungkunde.esk_mandant is null
and einstellungkunde.esk_abteilung is null
and einstellungkunde.esk_benutzer is null) wert_def,
(select einstellungkunde.esk_wert,
einstellungkunde.einstellungcode
from ECOopen.einstellungkunde
where v_einstellung_man_abt_ben.einstellungcode
= einstellungkunde.einstellungcode
and einstellungkunde.esk_mandant
= v_einstellung_man_abt_ben.mandant
and einstellungkunde.esk_abteilung is null
and einstellungkunde.esk_benutzer is null) wert_man,
(select einstellungkunde.esk_wert,
einstellungkunde.einstellungcode
from ECOopen.einstellungkunde,
einstellungkunde.einstellungcode
where v_einstellung_man_abt_ben.einstellungcode
= einstellungkunde.einstellungcode
and einstellungkunde.esk_mandant
= v_einstellung_man_abt_ben.mandant
and einstellungkunde.esk_abteilung
= v_einstellung_man_abt_ben.abteilung
and einstellungkunde.esk_benutzer is null) wert_abt,
(select einstellungkunde.esk_wert
einstellungkunde.einstellungcode
from ECOopen.einstellungkunde,
v_einstellung_man_abt_ben
where v_einstellung_man_abt_ben.einstellungcode
= einstellungkunde.einstellungcode
and einstellungkunde.esk_mandant is null
and einstellungkunde.esk_abteilung is null
and einstellungkunde.esk_benutzer
= v_einstellung_man_abt_ben.benutzer) wert_ben1,
(select einstellungkunde.esk_wert,
einstellungkunde.einstellungcode
from ECOopen.einstellungkunde,
v_einstellung_man_abt_ben
where v_einstellung_man_abt_ben.einstellungcode
= einstellungkunde.einstellungcode
and einstellungkunde.esk_mandant
= v_einstellung_man_abt_ben.mandant
and einstellungkunde.esk_abteilung is null
and einstellungkunde.esk_benutzer
= v_einstellung_man_abt_ben.benutzer) wert_ben2,
(select einstellungkunde.esk_wert,
einstellungkunde.einstellungcode
from ECOopen.einstellungkunde
v_einstellung_man_abt_ben
where v_einstellung_man_abt_ben.einstellungcode
= einstellungkunde.einstellungcode
and einstellungkunde.esk_mandant
= v_einstellung_man_abt_ben.mandant
and einstellungkunde.esk_abteilung
= v_einstellung_man_abt_ben.abteilung
and einstellungkunde.esk_benutzer
= v_einstellung_man_abt_ben.benutzer) wert_ben3
WHERE wert_ben1.einstellungcode
= v_einstellung_man_abt_ben.einstellungcode
AND wert_ben2.einstellungcode
= v_einstellung_man_abt_ben.einstellungcode
AND wert_ben3.einstellungcode
= v_einstellung_man_abt_ben.einstellungcode
AND wert_def.einstellungcode
= v_einstellung_man_abt_ben.einstellungcode
AND wert_man.einstellungcode
= v_einstellung_man_abt_ben.einstellungcode
AND wert_abt.einstellungcode
= v_einstellung_man_abt_ben.einstellungcode;
Received on Tue Nov 03 1998 - 12:05:52 CST
![]() |
![]() |