My purpose is not to write another installation guide for Oracle Express Edition on Ubuntu (Feisty). This is very well documented and quite easy.
However, despite a fresh installation, you will get the following error when loading /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/nls_lang.sh
:
- /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/nls_lang.sh:114:[[: not found
- /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/nls_lang.sh:114:[[:not found
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/nls_lang.sh:114:[[:not found
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/nls_lang.sh:114:[[:not found
You're not to be blamed, there is a slight error in the script.
The solution is to simply edit it (as root) and remove a pair of square brackets on lines #108 and #110.
- if [ -n "$LC_ALL" ]; then
- locale=$LC_ALL
- elif [ -n "$LANG" ]; then
- locale=$LANG
- else
- locale=
- fi
if [ -n "$LC_ALL" ]; then
locale=$LC_ALL
elif [ -n "$LANG" ]; then
locale=$LANG
else
locale=
fi
An alternative solution is to change the shell declaration on the very first line of the script.
Now, after reexecuting oracle_env.sh, the variable NLS_LANG should be set.
- > echo $NLS_LANG
- > AMERICAN_AMERICA.AL32UTF8
> echo $NLS_LANG
> AMERICAN_AMERICA.AL32UTF8
The explanation of this issue is that the Bourne Shell does not support the [[ compound command while the Bash shell does .
原文出处:http://beardedmagnum.com/2007/09/15/oracle-xe-on-ubuntu/