Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: This drives me mad !!!!

Re: This drives me mad !!!!

From: Jason Jay Weiland <archduke_at_uclink4.berkeley.edu>
Date: Tue, 03 Nov 1998 10:05:52 -0800
Message-ID: <363F4600.5FFCC573@uclink4.berkeley.edu>

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

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US