user1408307
user1408307

Reputation: 11

SQLPLUS BAT File

I have a BAT file that runs a script on oracle :

sqlplus myuser/mypassword@mydatabase @C:\runthisfile.sql

I want to distribute this to other users (that don't necessarily know how to modify a BAT file).

I want the dos prompt to ask the user to enter their user and password (obviously I don't want to give them my connection details). Have tried all types of combination but all that happens is that I end up with SQL>......

Am stumped!

Upvotes: 1

Views: 10393

Answers (3)

Rakesh Ravi G
Rakesh Ravi G

Reputation: 121

It is the very simple code for opening SQLPLUS without entering usename and password manually.

sqlplus -L UserName/Password

For example : sqlplus -L Rak4ak@sun64/rk4

For Understanding :

sqlplus [ [] [{logon | /nolog}] [] ]

is: [-C ] [-L] [-M ""] [-NOLOGINTIME] [-R ] [-S]

-C <version>   Sets the compatibility of affected commands to the
               version specified by <version>.  The version has
               the form "x.y[.z]".  For example, -C 10.2.0
-L             Attempts to log on just once, instead of
               reprompting on error.
-M "<options>" Sets automatic HTML markup of output.  The options
               have the form:
               HTML [ON|OFF] [HEAD text] [BODY text] [TABLE text]
               [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]
-NOLOGINTIME   Don't display Last Successful Login Time.
-R <level>     Sets restricted mode to disable SQL*Plus commands
               that interact with the file system.  The level can
               be 1, 2 or 3.  The most restrictive is -R 3 which
               disables all user commands interacting with the
               file system.
-S             Sets silent mode which suppresses the display of
               the SQL*Plus banner, prompts, and echoing of
               commands.

is: {[/][@] | / } [AS {SYSDBA | SYSOPER | SYSASM | SYSBACKUP | SYSDG | SYSKM}] [EDITION=value]

Specifies the database account username, password and connect
identifier for the database connection.  Without a connect
identifier, SQL*Plus connects to the default database.

The AS SYSDBA, AS SYSOPER, AS SYSASM, AS SYSBACKUP, AS SYSDG,
and AS SYSKM options are database administration privileges.

Upvotes: 0

TanisDLJ
TanisDLJ

Reputation: 1005

Regarding with SQLPlus stop, doing nothing:

Sometimes SQLPlus finish with ... meaning that is waiting for something more.

Try to add "/" (without quotes) in the end of your SQL file to execute it.

I hope it will help...

Upvotes: 0

staticbeast
staticbeast

Reputation: 2111

You can use the SET command with the /P argument in order to prompt the user for text during a batch file run, for example:

SET /P variable=Please enter text

This will then fill variable with whatever they type before hitting return.

@ECHO OFF
SET /P uname=Username:
SET /P pass=password:

This is a simple program which will prompt the first for a username, then a password. You should then be able to pass this as an argument to sqlplus:

sqlplus %uname%/%pass%@mydatabase @C:\runthisfile.sql

Upvotes: 0

Related Questions