code is
CREATE OR REPLACE PROCEDURE AGECHECK
as
DECLARE
v_DOB DATE;
v_AGE NUMBER(10);
v_CNAME VARCHAR2(20);
v_CADDRESS VARCHAR2;
v_CPHONE NUMBER(10);
v_PIN NUMBER(10);
v_NIC NUMBER(10);
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE ADULT(NAMES VARCHAR2(20),ADDRESSES VARCHAR2(20),PHONE NUMBER(10),PIN NUMBER(10),NIC NUMBER(10))';
EXECUTE IMMEDIATE 'CREATE TABLE CHILD(NAMES VARCHAR2(20),ADDRESSES VARCHAR2(20),PHONE NUMBER(10),PIN NUMBER(10),NIC NUMBER(10))';
CURSOR CHECKAGE IS
SELECT DOB,CNAME,CADDRESS,CPHONE,PIN,NIC FROM CUSTOMER C
INNER JOIN ACCOUNT A
ON A.CUSTOMERNO=C.CUSTOMERNO;
OPEN CHECKAGE;
FETCH NEXT FROM; CHECKAGE INTO v_DOB,v_CNAME,v_CADDRESS,v_CPHONE,v_PIN,v_NIC
WHILE NEXT%FOUND
LOOP
v_AGE := months_between(systimestamp,v_DOB) / 12 FROM dual;
IF(v_AGE > 18)
THEN
INSERT INTO ADULT VALUES(v_CNAME,v_CADDRESS,v_CPHONE,v_PIN,v_NIC);
ELSE
INSERT INTO CHILD VALUES(v_CNAME,v_CADDRESS,v_CPHONE,v_PIN,v_NIC);
END IF;
FETCH NEXT FROM; CHECKAGE INTO v_DOB,v_CNAME,v_CADDRESS,v_CPHONE,v_PIN,v_NIC
END LOOP;
CLOSE CHECKAGE;
END;
EXECUTE IMMEDIATE AGECHECK ;
oracle sql developer error are:-
/1 PLS-00103: Encountered the symbol "DECLARE" when expecting one of the following: begin function pragma procedure subtype type <an identifier> <a double-quoted delimited-identifier> current cursor delete exists prior external language The symbol "begin" was substituted for "DECLARE" to continue.
17/8 PLS-00103: Encountered the symbol "CHECKAGE" when expecting one of the following: := . ( @ % ;
bump
------ Post added on Sep 10, 2021 at 11:29 PM
CREATE OR REPLACE PROCEDURE AGECHECK
as
DECLARE
v_DOB DATE;
v_AGE NUMBER(10);
v_CNAME VARCHAR2(20);
v_CADDRESS VARCHAR2;
v_CPHONE NUMBER(10);
v_PIN NUMBER(10);
v_NIC NUMBER(10);
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE ADULT(NAMES VARCHAR2(20),ADDRESSES VARCHAR2(20),PHONE NUMBER(10),PIN NUMBER(10),NIC NUMBER(10))';
EXECUTE IMMEDIATE 'CREATE TABLE CHILD(NAMES VARCHAR2(20),ADDRESSES VARCHAR2(20),PHONE NUMBER(10),PIN NUMBER(10),NIC NUMBER(10))';
CURSOR CHECKAGE IS
SELECT DOB,CNAME,CADDRESS,CPHONE,PIN,NIC FROM CUSTOMER C
INNER JOIN ACCOUNT A
ON A.CUSTOMERNO=C.CUSTOMERNO;
OPEN CHECKAGE;
FETCH NEXT FROM; CHECKAGE INTO v_DOB,v_CNAME,v_CADDRESS,v_CPHONE,v_PIN,v_NIC
WHILE NEXT%FOUND
LOOP
v_AGE := months_between(systimestamp,v_DOB) / 12 FROM dual;
IF(v_AGE > 18)
THEN
INSERT INTO ADULT VALUES(v_CNAME,v_CADDRESS,v_CPHONE,v_PIN,v_NIC);
ELSE
INSERT INTO CHILD VALUES(v_CNAME,v_CADDRESS,v_CPHONE,v_PIN,v_NIC);
END IF;
FETCH NEXT FROM; CHECKAGE INTO v_DOB,v_CNAME,v_CADDRESS,v_CPHONE,v_PIN,v_NIC
END LOOP;
CLOSE CHECKAGE;
END;
EXECUTE IMMEDIATE AGECHECK ;
oracle sql developer error are:-
/1 PLS-00103: Encountered the symbol "DECLARE" when expecting one of the following: begin function pragma procedure subtype type <an identifier> <a double-quoted delimited-identifier> current cursor delete exists prior external language The symbol "begin" was substituted for "DECLARE" to continue.
17/8 PLS-00103: Encountered the symbol "CHECKAGE" when expecting one of the following: := . ( @ % ;
bump
------ Post added on Sep 10, 2021 at 11:29 PM
