Wednesday, January 7, 2009

Error 45 initializing SQL*Plus Internal error

If you are executing normal SQL script then review the script. I ran one SQL script and I saw after executing the script at the end it generated Error 45 initializing SQL*Plus Internal error. I review the script and I saw at the end of it there are some spool output. So I deleted that I ran again and it solved the problem.

However there is related oracle bug when fired whenever you run a Sql Script From OCFS. This bug retained from SQL*Plus - Version 9.0.1.0 to 10.1.0.2. When SQL script file is on a OCFS filesystem created on shared device then executing that script from SQL*Plus will fire the bug.

You can reproduce the bug by following steps.

1.Create a test.sql script on OCFS filesystem containing sql:
startup nomount

2. Check that test.sql script is in correct directory:
$ ls -l /ocfs/scripts
total 1
-rw-r--r-- 1 oracle dba 17 Mar 25 03:12 test.sql

3. Invoke SQL*Plus:
$ sqlplus /nolog

SQL*Plus: Release 10.1.0.2.0 - Production on Wed Aug 25 18:17:41 2004
Copyright (c) 1982, 2004, Oracle. All rights reserved.

4. Connect to database:
SQL> connect / as sysdba
Connected.

5. Execute script:
SQL> @/ocfs/scripts/test.sql
Error 45 initializing SQL*Plus
Internal error

Solution of The Problem
If this happens while you execute your script from OCFS then just copy the SQL script file to a local disk and then execute the script.

No comments:

Post a Comment