Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: running SQL script in UNIX command script
How do you know you are connecting to the correct database? Either you need
to set ORACLE_SID first, or add it to the connect: connect
johndoe/password_at_yourdb
-- Terry Dykstra Canadian Forest Oil Ltd. "Hans Forbrich" <forbrich_at_yahoo.net> wrote in message news:3FCF76B6.80B3BF40_at_yahoo.net...Received on Thu Dec 04 2003 - 13:03:09 CST
> Dave wrote:
> >
> > Oracle 8.1.7.3:
> >
> > I have the following in a UNIX shell script:
> >
> > #!/bin/ksh
> > sqlplus /NOLOG <<!
> > connect johndoe/password;
> > select count(token_text) from dr$item_ctxdesc$i;
> >
> > When I run it, I get this output:
> >
> > SQL*Plus: Release 8.1.7.0.0 - Production on Thu Dec 4 12:50:20 2003
> >
> > (c) Copyright 2000 Oracle Corporation. All rights reserved.
> >
> > SQL> Connected.
> > SQL> select count(token_text) from dr
> > *
> > ERROR at line 1:
> > ORA-00942: table or view does not exist
> >
> > SQL> Disconnected from Oracle8i Enterprise Edition Release 8.1.7.4.0 -
> > 64bit Production
> >
> > So, it's running, connecting as my user, and then trying to run the
> > select statement and failing at the 'from' command.
> >
> > When I run this statement at the SQL prompt, or in a SQL script(called
> > with @script.sql) it works.
> >
> > What am I missing?
>
> The fact that the $ is the general unix shell 'start of variable'.
>
> Before the shell passes this to SQLPlus, the shell tries to resolve the
> $i and the $item_ctxdesc variables. What are they set to, I wonder?
>
> Try escaping the $ (usual escape char in unix tends to be a backslash.)