Expanding on Róbert László Páli's answer, this is possible with a Procedural texture and bump mapping.
For an ocean texture, the procedural textures most likely to be what you want are:
You can also combine and mix these with an RGB mix node.
Here are some examples of bump mapping with a Noise texture:
You can affect only certain shaders by using the Bump node. One advantage to the bump node is you can easily adjust the strength of the displacement:
Or you can affect the entire material by plugging the texture output directly into the Displacement input of the Material Output node:
To control the strength with this method, plug the noise texture into an MixRGB node and set it to multiply. The other input becomes the "Strength factor", where white is full displacement (you can set it to a value greater than white to get a larger displacement), and black is no displacement. (likewise, negative values produce an inverted displacement)
This effect can be animated over time by animating the location of the Texture space. The settings for the Texture space are located in Properties > Object data panel > Texture space:
You can interactivle move the Texture space in the 3D view with ShiftT.
Note that you most likely want to animate along the Z, otherwise it will look like it's a static surface sliding horizontally.
You may also want to set the interpolation type to Linear in the Graph editor by pressing T> Linear to make the texture space move at a constant speed without accelerating and decelerating (the default behavior):