How to create a Table in Oracle which has a variable of type number? Suppose I want to store the social security numbers with a prefix letter 'S' (eg. S123456789) or a driving license number D (eg. D12345).

Is there any function or method to prefix it? Or patters? 
I just need a hint.
You could use a "code", whereby the first two digits represent your letter 'D' = X or 'S' = Y (X and Y are integers) and the rest of your number could be your numerical part - that would mean a lot of parsing though and my scheme won't work for more than 1 letter (without complex coding).

Why not put the letter in a separate column? What is your actual business requirement? 0-padding is out because 0-padded numbers appear to have to be VARCHARs - which is not what you want as I understand it. 

In fact, you'll have to start with 'K' = 10 (then 'Z' = 36, A = 37) &amp;c., because if you start with 'A' = 10, then what's 'K' going to be? Again, why do you want to do this? You could also have 'A' = 10, 'B' = 11... 'Z' = 36. If you only have a couple of letters in your system, I would use a small lookup table for the code and have a pure number in a INTEGER column. 

What's wrong with parsing VARCHARs? You'll be parsing your numbers anyway. Personally,  I'd go with a lookup table and separate field or a VARCHAR. But, I may have given you a couple of ideas? P.s. welcome to the forum!