Unlike many Unix programs, it is not just sufficient to have
'sqlplus' (or any of the other oracle binaries) in the Unix PATH
for everything to work nicely. An appropriate environment must be
created for the tools to work. Typically, on most Unixes, Oracle
will create two programs "coraenv" and
"oraenv" (for C-shell and bourne/korn shell
respectively), which can be sourced in to set the appropriate
environment variables.

In the absence of these (most commonly caused by people not
bothering to run the root.sh script at the end of an Oracle
install), the key variables that are usually needed are:

ORACLE_HOME

ORACLE_SID

LD_LIBRARY_PATH (typically $ORACLE_HOME/lib)

PATH (typically the existing path plus $ORACLE_HOME/bin)

ORA_NLS33, NLS_LANG (this being dependent on the
character set and language options in use)

Other errors that have popped up with older Oracle versions
have been the 'oracle' executable missing the setuid bit or
having the wrong permissions altogether.