Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR REPLACE PROCEDURE P_ADD_STATION(
- s_HEAD IN STATION.ID%TYPE,
- s_TAIL IN STATION.ID%TYPE,
- s_NAME IN STATION.NAME%TYPE
- s_ID OUT STATION.ID%TYPE
- ) IS
- t_ID TRANSFER.ID%TYPE;
- BEGIN
- IF (TRIM(p_NAME) IS NULL) THEN
- RAISE_APPLICATION_ERROR(-20101, 'Name should be not null');
- END IF;
- IF (s_HEAD IS NULL AND s_TAIL IS NULL) THEN
- RAISE_APPLICATION_ERROR(-20102, 'New station siblings were not specified');
- END IF;
- IF (s_TAIL IS NULL) THEN
- RAISE_APPLICATION_ERROR(-20103, 'New station must be either after or in between existing stations');
- END IF;
- s_ID := seq_STATION.NEXTVAL;
- INSERT INTO STATION(ID,NAME) VALUES (s_ID, s_NAME);
- t_ID := seq_TRANSFER.NEXTVAL;
- INSERT INTO TRANSFER(ID,FROM,TO) VALUES (t_ID, s_TAIL, s_ID);
- IF (s_HEAD IS NOT NULL) THEN
- t_ID := seq_TRANSFER.NEXTVAL;
- INSERT INTO TRANSFER(ID,FROM,TO) VALUES (t_ID, s_ID, s_HEAD);
- END IF;
- END P_ADD_STATION;
Advertisement
Add Comment
Please, Sign In to add comment