Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I get the following error when I run .sh file :

SP2-0667: Message file sp1.msb not found SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory

The following are the environment variables echo $ORACLE_HOME /u01/app/oracle/product/11.2.0

echo $ORACLE_SID sutdbd17

- Steve

share|improve this question

More details from Oracles oerr command about the messages.

oerr sp2 0667 gives:

00667, 0, "Message file %s<lang>.msb not found\n"
// *Cause:  The SP1, SP2, or CPY message file could not be
//          found. SQL*Plus cannot run.
// *Action: Check the Oracle platform specific documentation to make
//          sure SQL*Plus is installed correctly. This may occur
//          because the ORACLE_HOME environment variable or registry
//          equivalent is not set to the location of the Oracle
//          software. Make sure this value is set correctly. Check
//          that the SQL*Plus binary message files exist in the
//          SQL*Plus message directory, for example
//          $ORACLE_HOME/sqplus/mesg. Check the value of NLS_LANG
//          environment variable or registry equivalent is correct.

oerr sp2 0750 gives:

00750, 0, "You may need to set ORACLE_HOME to your Oracle software directory\n"
// *Cause:  This occurs when SQL*Plus is unable to find a message file
//          during program initialization.  The most common cause is
//          that ORACLE_HOME has not been set.  This prevents the
//          message files being found and SQL*Plus would be unable to
//          display error messages or text required for normal
//          operation.  Other causes are when the message file is
//          corrupt or cannot be read.
//          The text for this message is also hard coded (in English)
//          inside SQL*Plus source code.  The message can never
//          actually be read from this message file because the error
//          occurs only when message files cannot be opened.  The
//          entry here is for documentation purposes only.
// *Action: Make sure that all the environment variables or registry
//          entries needed to run SQL*Plus are set.  The variables are
//          platform specific but may include ORACLE_HOME, ORACLE_SID,
//          NLS_LANG, and LD_LIBRARY_PATH.
//          Also check that the file sp1XX.msb is in the
//          $ORACLE_HOME/sqlplus/mesg or %ORACLE_HOME%\sqlplus\mesg
//          directory.  The "XX" stands for the country prefix
//          associated with your NLS_LANG environment variable.
//          SQL*Plus reads only one of the sp1XX.msb files.  For
//          example sp1ja.msb is read if NLS_LANG is
//          JAPANESE_JAPAN.JA16EUC.  If NLS_LANG is not set, then the
//          default (English language) sp1us.msb is used.  Check that
//          the appropriate file is of non-zero size and that the file
//          permissions allow you to read it.  Note the ".msb" files
//          are binary.  The contents may be meaningless when viewed
//          or printed.  If you are unsure which language file is
//          being used, try unsetting NLS_LANG and run SQL*Plus to
//          verify it can read the sp1us.msb file.

A few variables from my oracle user accounts .bash_profile:

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/
export ORACLE_TERM=xterm
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

Make sure you run most/all of your stuff as the oracle user to get the right environment.

Hope this is of any use!

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.