Procedura - proměnné – Oracle – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Procedura - proměnné – Oracle – Fórum – Programujte.comProcedura - proměnné – Oracle – Fórum – Programujte.com

 

Kristina
~ Anonymní uživatel
17 příspěvků
5. 4. 2014   #1
-
0
-

Dobrý večer, mám potíže s procedurou uvedenou níže. Po zadání čísla objednávky by měla zobrazit jméno
zákazníka, který si objednal, atd. Kompilace proběhne s hláškou: provádění kódu bylo dokončeno s varováním.
Myslím, že problém (ten, který si uvědomuji) je, že po načtení čísla objednávky do proměnné
v_cislo_objednavky se hodnota dále nedosazuje do selectů, kde je tato proměnná dále používána. Zkoušela jsem hledat, jak toto vyřešit, ale marně. V ukázkových příkladech jsem vždy našla mezi begin a end vždy jen jeden select, kde vše proběhlo správně. Mohl by mi prosím někdo poradit, jak upravit můj kód? Popř. mě upozornit na jinou chybu, která hlášku způsobuje. Ošetření výjimek si prosím nevšímejte, ty ještě budu upravovat. Předem děkuji

Kristina
PS: Nejsem v problematice moc poučená, tak to prosím zohledněte.

 

CREATE OR REPLACE
PROCEDURE objednavka(
    v_cislo_objednavky IN INT)
  DECLARE
    v_zakaznik    CHAR(60);
    v_cena        INT;
    v_zamestnanec CHAR(60);
    v_mnozstvi    INT;
  BEGIN
    v_cislo_objednavky := &Zadejte_cislo_objednavky;
    SELECT rtrim(zak.jmeno)
      ||' '
      ||rtrim(zak.prijmeni)
    INTO v_zakaznik
    FROM zakaznik zak
    JOIN objednavky o
    ON zak.id_zakaznika   = o.id_zakaznika
    WHERE o.id_objednavky = v_cislo_objednavky;
    SELECT SUM(mnozstvi * cena)
    INTO v_cena
    FROM objednavka_detail od
    JOIN produkty p
    ON od.id_produkt       = p.id_produkt
    WHERE od.id_objednavky = v_cislo_objednavky;
    SELECT z.jmeno
      ||' '
      || z.prijmeni
    INTO v_zamestnanec
    FROM zamestnanci z
    JOIN objednavky o
    ON z.id_zamestnance   = o.id_zamestnance
    WHERE o.id_objednavky = v_cislo_objednavky;
    SELECT SUM(mnozstvi)
    INTO v_mnozstvi
    FROM objednavka_detail od
    JOIN produkty p
    ON od.id_produkt       = p.id_produkt
    WHERE od.id_objednavky = v_cislo_objednavky;
    dbms_output.put_line(v_zakaznik,v_cena);
  EXCEPTION
  WHEN no_data_found THEN
    dbms_output.put_line('Zadna data');
  WHEN too_many_rows THEN
    dbms_output.put_line('Vystup musi byt skalarni');
  WHEN value_error THEN
    dbms_output.put_line('Chybna hodnota');
  END;
Nahlásit jako SPAM
IP: 176.222.228.–
kikina
~ Anonymní uživatel
4 příspěvky
6. 4. 2014   #2
-
0
-

#1 Kristina
Tak jsem to nakonec přepsala následovně: declare jsem přepsala na as (to jsem nějak pomotala). Řádek
s &Zadejte_cislo_objednavky jsem vyhodila, stejně jako řádek s výpisem (dbms...). Poté to proběhlo v pořádku.
 

Nahlásit jako SPAM
IP: 212.79.96.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

Podobná vlákna

Procedura — založil karl

PROGRAM: procedura — založil Jenda

Chybějící procedura — založil Ulu_Mulu

Skola(Procedura a vety) — založil Adela

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý