Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

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/9.2.0.4
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .