@yashpande
I consider loading data from Agent as described below into a hash table seems promising. @Kurt_Bremser suggested other ways including Datastep Merge. Merge requires sorting of both the data sets which in your circumstance is very expensive.
The length of 200 is too large to go into a hash table. If you are sure of 200 bytes for Policy_Number, you can use md5() function to bring it down to 16 bytes to save memory space for KEY-Part. Further, you can use Observation number (Record ID) of Agent as DATA-Part of Hash table. When you find a match with your LOOKUP Data set, you can recover your 36 columns of Agent by using POINT= option of Set statement.
It is a challenging problem.
... View more