However, if you post the procedure (if you do so, format it and enclose into the CODE tags to preserve formatting), create a simple test case (CREATE TABLE and INSERT INTO several sample records), show us how you call the procedure (using which parameters), we would be able to assist.
Otherwise, all I can say is: you did something wrong and the procedure doesn't do what you wanted it to.
would be executed regardless UPDATE actually updates a record or not. It means that FOR loop exited without even entering the loop. Furthermore, it means that (probably) WHERE clause caused no records to be retrieved by a cursor.
What is the result of cursor's SELECT statement when you run it alone, in SQL*Plus, providing values you pass as parameters?
I'd try it myself, but - where's that test case I asked for? Why didn't you properly format the code?
The result of cursor's SELECT statement in SQL*Plus is a set of records which contains the URL1 in the table defobjectdatahtml. It means that there are some records (66 records) available for this select query.
There are only three columns which contains the URL1 in this table defobjectdatahtml, but need to join with so many tables to get the expected report. You might be noticed in the FOR loop of procedure.
I can able to run the procedure successfully without passing the parameter, ie giving the URL1 & URL2 values directly in the procedure. But now I need to modify the procedure inorder to pass the URLs as a parameter.