The only legitimate reason to take B12 shots is if you have proven low B12 level or pernicious anemia which is a result of an inability to absorb oral ingested B12. This is an uncommon disorder. Many many years ago some doctors began giving B12 to patients who complained about non-specific symptoms and the placebo effect of getting a shot makes some feel better. As I've heard said, the person who benefits most from a B12 shot is the doctor. If your B12 is low but you do not have an absorption issue you can take B12 orally and it will get into your body just fine.
http://www.medscape.com/viewarticle/585589