Cześć
Zwracam się z prośbą o pomoc.
Tworząc bazę muszę stworzyć procedurę, która na podstawie danych z dwóch tabel (TCARS i TCUSTOMER) dodawać wiersze do tabeli TRENTAL.
Procedura się kompiluje i wykonuje, ale nie dodaje wierszy. Macie może pomysł co może być problemem ?
Poniżej kod
DESC trental Name NULL Type ----------- -------- ----------- RENTAL_ID NOT NULL NUMBER RENTAL_DATE NOT NULL DATE RETURN_DATE DATE CAR_ID NOT NULL NUMBER CUSTOMER_ID NOT NULL NUMBER USED VARCHAR2(1)
DESC tcustomer Name NULL Type ----------- -------- ------------ CUSTOMER_ID NOT NULL NUMBER(3) FNAME NOT NULL VARCHAR2(23) LNAME NOT NULL VARCHAR2(23) LIC_NUMBER NOT NULL VARCHAR2(20) LIC_DATE NOT NULL DATE RENTAL_ID VARCHAR2(3) PESEL CHAR(11) BIRTH_DATE DATE PHONE_NR NOT NULL VARCHAR2(13)
DESC tcars Name NULL Type ---------- -------- ------------ CAR_ID NOT NULL NUMBER(38) CAR_PROD NOT NULL CHAR(20) CAR_MODEL NOT NULL VARCHAR2(20) COLOR VARCHAR2(20) REG_NUMBER NOT NULL VARCHAR2(20) STATUS NOT NULL CHAR(1) START_DATE NOT NULL DATE SELL_DATE DATE RENTAL_ID NUMBER COST NUMBER
CREATE OR REPLACE PROCEDURE add_rental (rental_date date, return_date date, Vfname varchar2, vlname varchar2, vcar_prod varchar2, vmodel IN varchar2, used IN varchar2) IS Car_nr number; Customer_nr number; BEGIN SELECT customer_id INTO customer_nr FROM tcustomer WHERE fname = vfname AND lname = vlname; SELECT car_id INTO car_nr FROM tcars WHERE car_prod = vcar_prod AND car_model = vmodel; dbms_output.put_line(' klient' || customer_nr); dbms_output.put_line(' auto' || car_nr); INSERT INTO trental VALUES (trental_inc.NEXTVAL, rental_date, return_date, car_nr,customer_nr,used); END ADD_RENTAL;
A po wykonaniu procedury wykonujesz commit?
Cześć
Poradziłem sobie w inny sposób, a mianowicie przez kursory.
Problem nie tkwił w samej składni procedury ale w przeszukiwaniu tabeli TCARS.
Dzięki za pomoc
M
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)