abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

    včera 22:44 | Zajímavý článek

    David Tschumperlé v obšírném článku se spoustou náhledů shrnuje vývoj multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie) za poslední rok a půl.

    Ladislav Hagara | Komentářů: 0
    včera 17:11 | Nová verze

    Vývojáři postmarketOS vydali verzi 23.06 tohoto před šesti lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell, Phosh, Plasma a Sxmo. Aktuálně podporovaných zařízení je 30.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | Nová verze

    Byla vydána distribuce openSUSE Leap verze 15.5 (poznámky k vydání). Jde o konzervativní distribuci odpovídající komerčnímu SUSE Linux Enterprise 15, nyní Service Pack 5. Mělo jít o poslední aktualizaci Leap v současné podobě před přechodem na Adaptable Linux Platform s „neměnným“ základem, ale padlo rozhodnutí, že v roce 2024 ještě vyjde Leap 15.6 s podporou do konce roku 2025.

    Fluttershy, yay! | Komentářů: 0
    včera 12:11 | Komunita

    Alyssa Rosenzweig v příspěvku na blogu oznámila, že Asahi Linux už zvládá OpenGL 3.1. Dokončuje se podpora OpenGL ES 3.1. Dalším krokem bude Vulkan 1.0.

    Ladislav Hagara | Komentářů: 3
    včera 11:11 | Komunita

    Intel nedávno představil a pod licencí SIL Open Font License (OFL) na GitHubu zveřejnil font Intel One Mono. Font je určen především pro zobrazování textu v emulátorech terminálu a vývojových prostředích (Přehled fontů s pevnou šířkou).

    Ladislav Hagara | Komentářů: 3
    včera 01:44 | Zajímavý projekt

    Na redditu byly publikovány zajímavé QR kódy vygenerované pomocí Stable Diffusion. Přehled použitého softwaru v článku na Ars Technica.

    Ladislav Hagara | Komentářů: 0
    6.6. 15:11 | Nová verze

    Byl vydán Mozilla Firefox 114.0. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Nově jsou také na Linuxu podporovány USB FIDO2/WebAuthn bezpečnostní klíče. WebTransport je ve výchozím stavu povolen. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 114 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 3
    6.6. 11:44 | Nová verze

    Byla vydána červnová aktualizace aneb verze 2023.06-1 linuxové distribuce OSMC (Open Source Media Center). Z novinek lze zdůraznit povýšení verze multimediálního centra Kodi na 20. Na léto je plánováno představení nového vlajkového zařízení Vero, jež nahradí Vero 4K +.

    Ladislav Hagara | Komentářů: 0
    6.6. 11:11 | Pozvánky

    Už zítra 7. června od 17 hodin proběhne SUSE Czech Open House 2023 aneb den otevřených dveří pražské pobočky SUSE. Těšit se lze na komentovanou prohlídku nebo přednášku o spotřebě procesorů.

    Ladislav Hagara | Komentářů: 0
    5.6. 22:33 | IT novinky

    Na vývojářské konferenci Applu WWDC23 byla představena řada novinek (cz): brýle Apple Vision Pro, MacBook Air 15” s čipem M2, Mac Studio s čipem M2 Max nebo M2 Ultra, Mac Pro s čipem M2 Ultra, iOS 17, iPadOS 17, macOS Sonoma, watchOS 10, …

    Ladislav Hagara | Komentářů: 4
    Twitter (nejen pro příležitostné čtení)
     (91%)
     (1%)
     (7%)
    Celkem 205 hlasů
     Komentářů: 6, poslední 6.6. 09:40
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Dotaz: Vytvoření tabulky v PL-SQL proceduře

    9.11.2009 22:29 tascoa | skóre: 11
    Vytvoření tabulky v PL-SQL proceduře
    Přečteno: 2079×
    Dobrý den, poradíte mi někdo, kde mám chybu při vytváření tabulky v pl/sql proceduře?
    create or replace procedure kopieTabulky(jmeno_tabulky VARCHAR2)
    as 
    begin
      execute immediate 'create table jmeno_tabulky as select * from zamestnanec';
    end;
    následně spustím:
    execute kopieTabulky('empT');
    
    ORA-Error:
    ORA-00955: název je již užíván existujícím objektem
    ORA-06512: na "dbschema.KOPIETABULKY", line 4
    ORA-06512: na line 2
    Děkuji za rady.

    Odpovědi

    10.11.2009 10:29 Robo
    Rozbalit Rozbalit vše Re: Vytvoření tabulky v PL-SQL proceduře
    a naco chces vytvarat tabulku procedurou? Vyzera to, ze ta tabulka uz existuje.
    10.11.2009 12:16 jekub
    Rozbalit Rozbalit vše Re: Vytvoření tabulky v PL-SQL proceduře
    execute immediate 'create table '||jmeno_tabulky||' as select * from zamestnanec'
    10.11.2009 17:27 Ivan
    Rozbalit Rozbalit vše Re: Vytvoření tabulky v PL-SQL proceduře
    Tohle je blbost a nikdy to nemuze poradne fungovat. Podobny veci delali lidi ktery prechazeji s MSSQL, Accessu nebo MySQL. Ackoliv se to nezda tak PL/SQL je kompilovany jazyk, ktery je zpracovavany nejakou virtualni masinou. Ono to neni na prvni pohled videt, protoze Oracle si uklada numericky object_id pro vsechny tabulky, pohledy a procedury a taky zna dependecy tree pro vsechny objekty. Pokud dojde k zmene definice objektu, tak se taky rekompiluji zavisle objekty. Takze nemuzete v PL/SQL procedure dropnout a zase vytvorit tabulku, pokud na ni ta sama procedura zavisi.

    Obecne plati, ze v Oracle by nikdy nemely volat DDL na produkcnim systemu - protoze k tomu proste neni duvod. Na to ceho chcete dosahnout urcite existuji jine prostredky.
    10.11.2009 23:15 tascoa | skóre: 11
    Rozbalit Rozbalit vše Re: Vytvoření tabulky v PL-SQL proceduře
    Tak jak byste prosím řešil následující zadání v testu v nejmenovaném předmětu na nejmenované vysoké škole:

    Napiste ulozenou PL/SQL proceduru KopieTabulky(jmeno_tabulky), ktera vytvorı tabulku se jmenem jmeno_tabulky_cp, ktera bude obsahovat stejne atributy se stejnymi datovymi typy jako puvodnı tabulka. Do nove tabulky pak zkopırujte vsechny zaznamy...
    11.11.2009 03:13 Ivan
    Rozbalit Rozbalit vše Re: Vytvoření tabulky v PL-SQL proceduře
    No jestli je to do skoly, tak ... Ale v praxi bych udelal: create materialized view table_copy as select * from table;

    begin dbms_mview.refresh('TABLE_COPY'); end;

    To co po tobe chteji je pouziti dynamickyho SQL v procedure. Bohuzel zrovna tohle je dost nestasny pouziti, kterymu by ses mel obloukem vyhnout.
    11.11.2009 08:41 kulik
    Rozbalit Rozbalit vše Re: Vytvoření tabulky v PL-SQL proceduře
    To je naprosty nesmysl. To, ze je jmeno tabulky pouzite v execute immediate, nevytvari zadnou zavislost procedury na tabulce. Tento zpusob osetreni databazovych objektu se bezne pouziva, je to trivialni programatorsky postup - co chci delat opakovane (mit to pod kontrolou, logovat to,...), vytahnu si do funkce. Samozrejme aplikace provadejici DDL nejsou typicke, ale napriklad v datovych skladech jde o velmi casty postup - vytvoreni a zruseni pomocnych tabulek, truncate stage tabulek, exchange partition,... jsou vsechno velmi smysluplne DDL operace. Moudro "Obecne plati, ze v Oracle by nikdy nemely volat DDL na produkcnim systemu" je od tebe nebo jsi ho nekde vycetl (v takovem pripade by me hodne zajimalo kde).
    11.11.2009 09:55 tascoa | skóre: 11
    Rozbalit Rozbalit vše Re: Vytvoření tabulky v PL-SQL proceduře
    neexistuje neco jako:

    create table tab_copy as desc tab_orig;

    ??? nikde jsem to nevycetl...
    11.11.2009 10:40 melkors | skóre: 13 | blog: kdo_chce_kam
    Rozbalit Rozbalit vše Re: Vytvoření tabulky v PL-SQL proceduře
    create table KOPIE as select * from ORIG;
    11.11.2009 11:38 kulik
    Rozbalit Rozbalit vše Re: Vytvoření tabulky v PL-SQL proceduře
    Pripadne s podminkou typu where 1 = 2, pokud chci jen stejne sloupecky bez dat. Nevylucuju ze na to existuje vhodna funkce v nektrem z dbms* baliku, ale ja jsem zvykly to delat takhle.
    13.2.2011 10:01 AZOR
    Rozbalit Rozbalit vše Re: Vytvoření tabulky v PL-SQL proceduře
    Je na to dbms_metadata.get_dll , ktera vrati kazde ddl z objektu. Ale normalni clovek pouziv select * from samicky where 1=23;
    11.11.2009 13:22 Ivan
    Rozbalit Rozbalit vše Re: Vytvoření tabulky v PL-SQL proceduře
    Takhle zavislost na tabulce samozrejme nevznikne, ale pak tuhle proceduru nemuzete volat z cehokoliv co na te tabulce zavisi. Nekdy to muze byt docela orisek, prijit na to co invaliduje proceduru, kterou volate. Truncate a partition management jsou samozrejme operace ktere do produkce patri. Pokud ale nekdo neumi napsat poradne join a resi to tak, ze si dropne pomocnou tabulku, pak ji zase vytvori a pak se ji pokusi pouzit v nejakym dotazu, tak ma proste na Oracle smulu. Takovyhle postupy se daji pouzit tak na Accessu nebo na MySQL. Takze mate pravdu to "mourdo" musim vzit zpet, ale mam jine - produkci be se melo provatet co nejmene operaci ktere vyzaduji library cache pin. A treba to dropnuti a znovu vytvoreni tabulky vyzaduje rekompilaci vsech PL/SQL procedur, ktere na ni zavisi.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.