Oracle, oracle, csak a baj van veled... 4. felvonás - avagy ORA-38824

Eltelt némi idő, és persze, hogy újabb módon szivat ez a (nem kicsit) drágaság: Két, elvileg egyforma DB, ugyanaz a "create or replace procedure...", és az egyiken simán lefut, a másikon meg "ORA-38824: CREATE OR REPLACE command may not change the EDITIONABLE property of an existing object." hiba van.

A "szép" az egészben az, hogy a problémás DB-ben korábban nem volt ilyen gond... Amióta el lett dobva a teljes séma, és utána létrehozva (elvileg ugyanazzal a scripttel, amivel a másik DB-ben), majd egy adatpumpás export visszatöltése történt, szerintem azóta csinálja ezt.

Most lehet utánaolvasnom, hogy mi a búbánatos fene ez, és hogyan lehet lebeszélni róla ezt a nyavalyást, mert folyamatosan várhatók javítások, és nem igazán buli mindet azzal kezdeni, hogy milyen create or replace olyasmi van benne, ami EDITIONABLE témában "érintett", és kézzel mókolni (jellemzően drop...), hogy a create or replace működjön.

 

Hozzászólások

Szerkesztve: 2020. 07. 16., cs – 20:31

Google+intuíció:

DROP PROCEDURE foobar;
CREATE OR REPLACE EDITIONABLE PROCEDURE ...

Vagy méginkább:


ALTER USER ezaneve DISABLE EDITIONS [FORCE];

Valami ilyenre jutottam én is, de még várok a szállítói reagálásra, merthogy az első a kapott sql-be mászik bele, a második meg a kapott sémageneráló scripttől jelent eltérést :) (Most az első a workaround, de esélyes, hogy a második lesz a megoldás...)

A kérdés egyébként az, hogy mi a búbánatért változott és micsoda akkor, amikor impdp-vel behúztam az eldobott és újragenerált sémába a másik szerveren készült dump-ot?

Ezt láttam - és anyáztam is, hogy ha tényleg az adatpumpa ba...rmolja el a dolgot, akkor az k...ifejezetten nagyszerű :-D Majd egy teszt DB-ben még megpróbálom a másik vajákolást, a drop után a sémakreálásnál az alter session set "_oracle_script"=true; kihagyását.

"Majd egy teszt DB-ben még megpróbálom a másik vajákolást"

Erről eszembe jut az egyik kedvenc Oracle esetem. A teszt DB-ken minden rendben, az élesen meg nem fut le egy SQL query. Oracle Supporton is azzal kezdődik a doksi, hogy ha a teszten fut, de az élesen nem, akkor... 😂 És egy nem dokumentált paramétert kell átállítani trueról falsera.