Drop Table

Support Forum for database administrators and web based access to important newsgroups related to databases
Register on Database Support Forum Edit your profileCalendarFind other Database Support forum membersFrequently Asked QuestionsSearch this forum -> 
For Database admins: Free Database-related Magazines Now Free shipping to Texas


Post New Thread










Thread
Author

osql batch processing without -i
Hi,
I have just started using MSSQL and the DOS environment at work.  I have
a lot of experience with Sybase and the UNIX environment, but this is a
whole new ball of wax.
I'd like to use osql from a batch file to log into the dataserver and
run a fairly long list of SQL and then exit.  I don't want to have a bunch
of SQL files sitting around that I have to use the -i option to run,  and
I'd rather not create temporary SQL files like this.

echo "exec sp_who2" >tmp.sql
echo "select * from....... " >>tmp.sql
osql -E -S <DATASERVER> -n -w999 -i tmp.sql
del tmp.sql

I can't use the -Q option, of course because as I said, I'll be writing
quite a few lines of SQL, and it won't all fit on the one line, or at least
it wouldn't be pretty if I did.

In UNIX, I can simply execute the following from either the command line
or in
a script.

isql -S<DATASERVER> -U<USER> <<-EOF

sp_who
go
select * from .....
go
EOF  --EOF is the isql session terminator exits me back to the command line.

This behavior does not appear to work with OSQL.  There is a -O option
which help mentions, and that talks about disabling the EOF terminator for
batch processing, but I wasn't able to find any usage or examples on the net
where someone is using EOF to terminate their OSQL SQL batch.

This is what help listed.
[-O use Old ISQL behavior disables the following]
<EOF> batch processing
Auto console width scaling
Wide messages
default errorlevel is -1 vs 1


Any help you could offer would be appreciated.  Thanks.

Darren





Report this thread to moderator Post Follow-up to this message
Old Post

01-17-06 01:24 AM


Re: osql batch processing without -i
On Mon, 16 Jan 2006 18:44:19 -0600, <dphillip79@comcast.net> wrote:

 (snip)
>    In UNIX, I can simply execute the following from either the command lin
e
>or in
>a script.
>
>isql -S<DATASERVER> -U<USER> <<-EOF
>
>sp_who
>go
>select * from .....
>go
>EOF  --EOF is the isql session terminator exits me back to the command line
.
>
>    This behavior does not appear to work with OSQL.

Hi,

It's not OSQL, it's Windows/DOS that is causing the difference. In UNIX,
utilities take their input from STDIN, which is either the next line in
the script (if run from a script) or the next line entered on the
console (if run from a console).

The same thing happens if you create a script (testme.bat) with the
following content:

copy con test.txt
This won't work

Execute it. The copy con command is started and the console will wait
for your input. Type one or more lines, then type Ctrl-Z (the EOF
marker). You'll next see an error because "Thins won't work" is not a
valid DOS command.

An equivalent script in Unix would enter "This won't work" in the file
test.txt.

>    Any help you could offer would be appreciated.

I think that you'll have to settle for either a bunch of commonly used
SQL script files, or for dynamically building the SQL script using a
bunch of redirected echo statements.

--
Hugo Kornelis, SQL Server MVP

Report this thread to moderator Post Follow-up to this message
Old Post
Hugo Kornelis
01-18-06 01:23 AM


Re: osql batch processing without -i
"Hugo Kornelis" <hugo@perFact.REMOVETHIS.info> wrote in message
 news:raiqs1pfephh7fa
 ud9sesnjot56c7tdng9@
4ax.com...
> On Mon, 16 Jan 2006 18:44:19 -0600, <dphillip79@comcast.net> wrote:
>
> (snip) 
line 
line. 
>
> Hi,
>
> It's not OSQL, it's Windows/DOS that is causing the difference. In UNIX,
> utilities take their input from STDIN, which is either the next line in
> the script (if run from a script) or the next line entered on the
> console (if run from a console).
>
> The same thing happens if you create a script (testme.bat) with the
> following content:
>
> copy con test.txt
> This won't work
>
> Execute it. The copy con command is started and the console will wait
> for your input. Type one or more lines, then type Ctrl-Z (the EOF
> marker). You'll next see an error because "Thins won't work" is not a
> valid DOS command.
>
> An equivalent script in Unix would enter "This won't work" in the file
> test.txt.
> 
>
> I think that you'll have to settle for either a bunch of commonly used
> SQL script files, or for dynamically building the SQL script using a
> bunch of redirected echo statements.
>

Thanks for the Info Hugo.  I was afraid of that.  I'm used being able to
do whatever I want in UNIX, so DOS seems to be a bit of a step back for me.
I did just download a version of sed for DOS, which I'm really excited
about.  :)  I also have a VB .net class next week, so I'm hoping to pick up
some tricks in there.  Thanks again.

Darren

> --
> Hugo Kornelis, SQL Server MVP



Report this thread to moderator Post Follow-up to this message
Old Post

01-20-06 01:24 AM


Sponsored Links





Last Thread Next Thread
Post New Thread

Microsoft SQL Server forum archive

Show a Printable Version Email This Page to Someone! Receive updates to this thread
Microsoft SQL Server
Access database support
PostgreSQL Replication
SQL Server ODBC
FoxPro Support
PostgreSQL pgAdmin
SQL Server Clustering
MySQL ODBC
Web Applications with dBASE
SQL Server CE
MySQL++
Sybase Database Support
MS SQL Full Text Search
PostgreSQL Administration
SQL Anywhere support
DB2 UDB Database
Paradox Database Support
Filemaker Database
Berkley DB
SQL 2000/2000i database
ASE Database
Forum Jump:
All times are GMT. The time now is 04:16 AM.

 
Mobile devices forum | Database support forum archive




Copyrights DropTable.com Database Support Forum 2004 - 2006