Reputation: 3204
Is there any way to have a Windows batch file directly input SQL statements without calling a script? I want the batch file to login to SQL and then enter in the statements directly.
EDIT: I'm using Oracle v10g
Upvotes: 2
Views: 9982
Reputation: 29689
Here is a rough example script for MSSQL which may be able to be modified for Oracle:
@ECHO off
SETLOCAL ENABLEDELAYEDEXPANSION
:: batch file for sql query
SET STARTDATE=20101010
SET ENDDATE=20111109
SET AGENCYNAME=Agency
SET DBNAME=AccidentDB
SET SQLSTRING=SELECT Acc.INC_ID,^
Veh.MAKE, Veh.MODEL, Veh.LIC_NUM^
FROM Acc,^
lnk_Acc_Veh, Veh^
WHERE (INC_NUM LIKE '20115000%')^
AND lnk_Acc_Veh.link_id=Veh.key^
AND lnk_Acc_Veh.link_id=Acc.key^
AND Acc.date ^> '%STARTDATE%' OR Acc.date ^< '%ENDDATE%';
CLS
@ECHO.
@ECHO.
@ECHO DBNAME is %DBNAME%
@ECHO.
@ECHO SQLSTRING is "!SQLSTRING!"
@ECHO.
@ECHO ------------------------------------------------------
@sqlcmd.exe -b -S localhost -E -d !DBNAME! -Q "!SQLSTRING!" -W
@ECHO.
@ECHO Report is done. Hit any key to close this window....
@pause>nul
Upvotes: 0
Reputation: 6581
You can use http://tekkies.co.uk/go/runsqloledb
e.g. RunSQLOLEDB "Provider=SQLOLEDB;Data Source=(local);..." "SELECT GetDate()" or RunSQLOLEDB @ConnectionString.txt @Query.sql
Upvotes: 0
Reputation: 19385
The odbc command of the outwit tool suite allows you to run select statements on any database for which an appropriate ODBC data source has been defined.
Upvotes: 0
Reputation: 404
You could use sqlcmd (for sql server) or System.Data.Odbc.OdbcCommand from powershell.
Upvotes: 1
Reputation: 422252
To run something on SQL server 2005/2008, you could use sqlcmd
command line utility. sqlcmd -h
prints the list of switches.
Upvotes: 3
Reputation: 44327
Short answer: No. Batch files by themselves can't do this.
Long answer: You may be able to come close, depending on which kind of database server you're using, and what the capabilities the commandline client provides.
What kind of database server are you using? Oracle, mySql, Sybase, Microsoft, Terradata, ???
For example, with a Sybase database, you can use the isql commandline client to run from a batch file:
isql -S server -D database -U user -P password -i script
Upvotes: 2
Reputation: 48131
For a single command you can use this trick:
echo select * from dual; | sqlplus user/pw@db
Upvotes: 3