| | |
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Autor | Správa |
---|
Registrovaný: 17.02.09 Prihlásený: 20.03.15 Príspevky: 36 Témy: 13 | Napísal johnw: 09.12.2013 21:55 | |
|
Ahojte, snazim sa spravit proceduru ktora po zadani rodneho cisla, prepise pacienta (meno, priezvisko, rod.cislo) do tabulky pacient_zaloha(tabulka je uz vytvorena), a tohto pacienta s povodnej tabulky vymaze. mam toto: Kód: create or replace procedure "PACIENT_CLONE" (rc IN OUT pacient.rodne_cislo%TYPE, prijmeni OUT pacient.prijmeni%TYPE, jmeno OUT pacient.jmeno%TYPE, pohlavie OUT pacient.pohlavie%TYPE) is begin SELECT prijmeni INTO prijmeni FROM pacient WHERE rodne_cislo = rc; SELECT jmeno INTO jmeno FROM pacient WHERE rodne_cislo = rc; SELECT pohlavie INTO pohlavie FROM pacient WHERE rodne_cislo = rc; INSERT INTO pacient_zaloha VALUES (rc,prijmeni,jmeno,pohlavie); DELETE FROM pacient WHERE rodne_cislo=rc; end pacient_clone; je to spravne? dakujem
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 09.12.2013 22:48 | |
|
Jako, ked ti to funguje, tak preco by nebolo... : ) ale nechapem, naco tam mas tie OUT parametry, potrebujes s nimi robit dalej mimo procedury? Ak nie, len si zadefinuj lokalne premenne... a rc nemusi byt OUT vobec. Kód: create or replace procedure "PACIENT_CLONE" (rc IN pacient.rodne_cislo%TYPE) as prijmeni pacient.prijmeni%TYPE; jmeno pacient.jmeno%TYPE; pohlavie pacient.pohlavie%TYPE; begin ... A ten select ti staci jeden predsa: Kód: SELECT prijmeni, jmeno, pohlavie INTO prijmeni, jmeno, pohlavie FROM pacient WHERE rodne_cislo = rc;
|
|
Registrovaný: 17.02.09 Prihlásený: 20.03.15 Príspevky: 36 Témy: 13 | Napísal autor témy johnw: 09.12.2013 23:30 | |
|
podstate prvy krat robim s sql , takze dikes Ale ked zadam do SQL command line: pacient_clone(dake rodne cislo); tak mi hodi ERROR at line1: ORA-06550: line1, column 7: PLS-00201 identifier 'Pacient_clone' must be declared ORA - 06550: line 1, column 7: PL/SQL: statement ignored kde moze byt chyba?
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 09.12.2013 23:53 | |
|
A hento predtym ti fungovalo? Ked je to procedura, tak mi napada, ze by sa mozno hodilo begin pacient_clone(1337428086); end; pri tom natrepani do konzoly.
|
|
Registrovaný: 17.02.09 Prihlásený: 20.03.15 Príspevky: 36 Témy: 13 | Napísal autor témy johnw: 10.12.2013 12:06 | |
|
ahoj , ked do konzoly napisem begin pacient_clone(1337428086); end; nechodi mi to chybu ale len mi to zariadkuje a ukze cislo 2 a po stalcni entra sa cislo stale len inkrementuje a to je vse.:/ Ale table mam jednoduche nemyslim ze v tom mam chybu, ako by sa dalal procedura volat z vnutra ? Prepac za blbe otazky ale s sql robim prvy krat.
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 10.12.2013 15:39 | |
|
Skus na koniec riadku pred stlacenim enteru este napisat lomitko /
|
|
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|