I've been doing this with my VISA card for 10 years. It's great because some online subscriptions have an auto-renew. So you just make the expiration date on your virtual card sooner than the auto-renew date. Then they have to contact you for a new card number when the renewal time comes around.
Plus, you can set a spending limit when you generate the virtual card too. That way you can set it a few dollars higher than your purchase amount, and if anyone were to steal the card number, it wouldn't be approved for additional purchases because there wouldn't be any charging room left on that virtual card number.