There is an internal limit on the size of Oracle data files, which is:
Each data file can contain a maximum of 2 ^ 22-1 data blocks.
This limit directly results in the maximum allowed size of each data file.
Under 2 K Block_size, the maximum data file size is approximately 8 GB.
Under the Block_size of 32 K, the maximum size of the data file is 16*8 GB.
This restriction is because the Rowid of Oracle uses 22 Bits to represent the Block number. These 22 Bits can only represent 2 ^ 22-1 data blocks at most.
To expand the size of data files, a large file tablespace is introduced in Oracle10g. In a large file tablespace, Oracle uses 32 bits to represent the Block number. That is to say, in the new technology, each file in a large file tablespace can contain up to 4 GB blocks. That is to say, when Block_size is 2 K, the data file can reach 8 TB. When the block_size is 32 K, the data file size can reach 128 TB.
Of course, this restriction is related to the operating system.