I'm creating a procedure in Oracle to search for some keywords specified in the parameter and print out the line. This is my code below. It works but I don't know why it keeps printing the last line twice. Please help
CREATE TABLE Testimonial( TestimonialID integer PRIMARY KEY,
Content char(100));
INSERT INTO Testimonial VALUES (100,'Great website');
INSERT INTO Testimonial VALUES (101,'I like it');
INSERT INTO Testimonial VALUES (102,'I bought two items from here and I really like them');
INSERT INTO Testimonial VALUES (103,'My girlfriends likes my presents I bought here');
INSERT INTO Testimonial VALUES (104,'Nice products');
INSERT INTO Testimonial VALUES (105,'Friendly customer service');
COMMIT;
Create or replace procedure Search_Testimonials (search_string IN char)
IS
Testimonial_record Testimonial%ROWTYPE;
cursor cur_Testimonial is
select *
from Testimonial
WHERE content LIKE '%' || search_string || '%';
BEGIN
open cur_Testimonial;
Loop
Fetch cur_Testimonial into Testimonial_record;
DBMS_OUTPUT.PUT_LINE( 'Content: ' || Testimonial_record.content );
EXIT WHEN cur_Testimonial%NOTFOUND;
END LOOP;
close cur_Testimonial;
COMMIT;
END;
/
set serveroutput on
exec Search_Testimonials('bought')
OUTPUT
Content: I bought two items from here and I really like them
Content: My girlfriends likes my presents I bought here
Content: My girlfriends likes my presents I bought here