Re: mapping devices on sqlplus! - Oracle 10g XE

  • From: Stefan Knecht <knecht.stefan@xxxxxxxxx>
  • To: Guilherme Raymo Longo <grlongo.ireland@xxxxxxxxx>
  • Date: Sun, 24 Oct 2010 16:30:50 +0200

Hi Guilherme

I wasn't running it in wine, just in a plain normal Linux shell.

What basically happens is that the OS tries to load the script file

"F:\TEST\foo.sql"

Which the shell then interprets to

F:TESTfoo.sql

(Because it thinks the backslashes are escape characters -- but \T or \f has
no special meaning, so they basically just get ignored.

In other words, if you run your installer's script in sqlplus under linux
the symbolic link to "fake" the windows path would actually point to a real
file under linux, hence it should run ?

So in your case:


SQL*Plus: Release 10.2.0.1.0 - Production on Sun Oct 24 05:42:27 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SP2-0310: unable to open file "F:INTEGRADOLINNERSETUPARQUIVOSUSUARIOS.SQL"

Just create a symbolic link with the
name F:INTEGRADOLINNERSETUPARQUIVOSUSUARIOS.SQL that points to a copy of the
script it is trying to run ?

Stefan


=========================

Stefan P Knecht
CEO & Founder
s@xxxxxxxx

10046 Consulting GmbH
Schwarzackerstrasse 29
CH-8304 Wallisellen
Switzerland

Phone +41-(0)8400-10046
Cell +41 (0) 79 571 36 27
info@xxxxxxxx
http://www.10046.ch

=========================


On Sun, Oct 24, 2010 at 9:45 AM, Guilherme Raymo Longo <
grlongo.ireland@xxxxxxxxx> wrote:

> Hi, and thanks fir the reply!
> I was afraid that I wouldn't be able to solve this problem without asking
> the development team to rewrite a unix solution before trying this one.
>
> But, Stefan.  I don't really get what you are trying to say...
>
> 'oracle@central:~/temp/ [M2] cat > real_script.sql´
> select * from v$instance;
>    - Here I presume you populated your script
>
> oracle@central:~/temp/ [M2] ln -s real_script.sql F:TESTfoo.sql
>   - And than you created a link to the real script here: F:TEST\foo.sql
>
> Now, this command:
> @F:\TEST\foo.sql
>
> You are executing the simbolic link in F:\
> F:\ is a mapped directory in wine... how sqlplus is able to find F:\ still
> not clear to me as there is no real F:\ to sqlplus.
>
> this is the part where it goes wrong, and remember that I am in a linux
> box... this is a installation through wine.. ;O)
>
> C:\Setup>C:\ORACLEXE\APP\ORACLE\PRODUCT\10.2.0\SERVER\BIN\SQLPLUS.EXE
> /NOLOG @F:\INTEGRADO\LINNER\SETUP\ARQUIVOS\USUARIOS.SQL     <------- This
> file really exist, and it is there....
>
> SQL*Plus: Release 10.2.0.1.0 - Production on Sun Oct 24 05:42:27 2010
>
> Copyright (c) 1982, 2005, Oracle.  All rights reserved.
>
> SP2-0310: unable to open file "F:INTEGRADOLINNERSETUPARQUIVOSUSUARIOS.SQL"
>
> Could you plz gimme one more little hint... and thanks for the effort!
>
>
>
>
> On Sat, Oct 23, 2010 at 5:38 PM, Stefan Knecht <knecht.stefan@xxxxxxxxx>wrote:
>
>> Try this:
>>
>> oracle@central:~/temp/ [M2] cat > real_script.sql
>> select * from v$instance;
>> oracle@central:~/temp/ [M2] ln -s real_script.sql F:TESTfoo.sql
>> oracle@central:~/temp/ [M2] sqh
>>
>> SQL*Plus: Release 11.2.0.1.0 Production on Sat Oct 23 21:36:43 2010
>>
>> Copyright (c) 1982, 2009, Oracle.  All rights reserved.
>>
>>
>> Connected to:
>> Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit
>> Production
>> With the Partitioning, Automatic Storage Management, OLAP, Data Mining
>> and Real Application Testing options
>>
>> SQL> @F:\TEST\foo.sql
>>
>>
>>
>>
>> INSTANCE_NUMBER INSTANCE_NAME
>> --------------- ----------------
>> HOST_NAME
>> ----------------------------------------------------------------
>> VERSION           STARTUP_T STATUS       PAR    THREAD# ARCHIVE
>> LOG_SWITCH_WAIT
>> ----------------- --------- ------------ --- ---------- -------
>> ---------------
>> LOGINS     SHU DATABASE_STATUS   INSTANCE_ROLE      ACTIVE_ST BLO
>> ---------- --- ----------------- ------------------ --------- ---
>>               1 M2
>> central
>> 11.2.0.1.0        21-SEP-10 OPEN         NO           1 STARTED
>> ALLOWED    NO  ACTIVE            PRIMARY_INSTANCE   NORMAL    NO
>>
>>
>> Stefan
>>
>>
>>
>> =========================
>>
>> Stefan P Knecht
>> CEO & Founder
>> s@xxxxxxxx
>>
>> 10046 Consulting GmbH
>> Schwarzackerstrasse 29
>> CH-8304 Wallisellen
>> Switzerland
>>
>> Phone +41-(0)8400-10046
>> Cell +41 (0) 79 571 36 27
>> info@xxxxxxxx
>> http://www.10046.ch
>>
>> =========================
>>
>>
>>
>> On Sat, Oct 23, 2010 at 11:44 AM, Guilherme Raymo Longo <
>> grlongo.ireland@xxxxxxxxx> wrote:
>>
>>> Good morning....
>>>
>>> I trying to accomplish a task that is killing me... seriously!
>>> I am trying to adapt an application that runs on windows to work on an
>>> Ubuntu Server box.
>>> The thing is that during the installation at certain point it
>>> is necessary that some sql script gets opened and executed by sqlplus.
>>> I am doing everything I can with wine but after the sqlplus is opened the
>>> problem begins. This is the line that the executable runs to open the sql
>>> script:
>>>
>>> C:\ORACLEXE\APP\ORACLE\PRODUCT\10.2.0\SERVER\BIN\SQLPLUS.EXE /NOLOG
>>> @F:\INTEGRADO\LINNER\SETUP\ARQUIVOS\USUARIOS.SQL
>>>
>>> The sqlplus file has been mapped correctly, but this
>>> path: @F:\INTEGRADO\LINNER\SETUP\ARQUIVOS\USUARIOS.SQL cannot be found
>>> because sqlplus does not have F:
>>> mapped. Wine does!
>>>
>>> So, my question is:
>>> Is there any way to map (by using environment variables or by any other
>>> way) a path to a device for example F: -> /my/path so sqlplus is able to
>>> find files when a statement like the one above is executed?
>>>
>>> Thanks in advance!
>>> Guilherme Longo
>>>
>>>
>>>
>>>
>>>
>>
>

Other related posts: