Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: running SQL script in UNIX command script
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.) Received on Thu Dec 04 2003 - 12:03:11 CST