[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

MS SQL 2000 osql output to text formatting issue

Posted on 2006-11-02
5
Medium Priority
?
310 Views
Last Modified: 2012-05-05
Hi,

I'm currently running the following line in my stored procedure:


 Set @cmd = 'osql -h-1 -E /Q "SELECT * FROM MyTable WHERE [ID] = ' +@ID + ' "  /o ' + @filename


and the following output is produced:


3.0 myStore union Street Dundee NULL UK G12 5TY 300.0 20.0 9.0 Y Y 1.0 ? Y 1.0 ? Y 3.0 ? N 2.0 2.0 N 0.0 ? (1 row affected)


This pulls results from the following DB:

      [Id] [float] NULL ,
      [Name] [nvarchar] (255) COLLATE Latin1_General_CI_AS NULL ,
      [Address Line1] [nvarchar] (255) COLLATE Latin1_General_CI_AS NULL ,
      [Address Line 2] [nvarchar] (255) COLLATE Latin1_General_CI_AS NULL ,
      [Address Line 3] [nvarchar] (255) COLLATE Latin1_General_CI_AS NULL ,
      [Town] [nvarchar] (255) COLLATE Latin1_General_CI_AS NULL ,
      [Postcode] [nvarchar] (255) COLLATE Latin1_General_CI_AS NULL ,
                etc


What i really need is some way to better format the output from osql - so that something like the following is displayed:


                Id =                          Value from Store field
      Name =                     Value from Name field
      Address Line1 =         Value from Address 1 field
      Address Line 2 =        Value from Address 2 field
      etc

Is this possible to do this with osql as i am attempting?  Or is there another way to create formattable files on the fly from a stored proedure in sql2000?

Many thanks,

Iain

0
Comment
Question by:iainfitzy
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
5 Comments
 
LVL 9

Expert Comment

by:gpompe
ID: 17860116
What you can do is something like

SELECT 'Id = '+char(9)+Store+char(13)+char(10)+'Name ='+char(9)+Name FROM MyTable WHERE [ID] = ' +@ID + '

char(9) is TAB
char(13) is CR
char(10) is LF



0
 
LVL 9

Expert Comment

by:gpompe
ID: 17860127
Sorry I forgot to add that this is an example and you should put all the columns you want.
0
 

Author Comment

by:iainfitzy
ID: 17864878
Cheers, i'll try out this method.  One quick point though, is it possible to remove the '(1 row affected)' from the end of the file that i create? i've used SET NOCOUNT ON but this doesnt appear to be making a difference.  
0
 
LVL 9

Accepted Solution

by:
gpompe earned 1500 total points
ID: 17866648
To remove the record count you can do this: (add SET NOCOUNT ON in front of the query)

 Set @cmd = 'osql -h-1 -E /Q "SET NOCOUNT ON; SELECT 'Id = '+char(9)+Store+char(13)+char(10)+'Name ='+char(9)+Name FROM MyTable WHERE [ID] = ' +@ID + '"  /o ' + @filename
0
 

Author Comment

by:iainfitzy
ID: 17867113
thanks.
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Recently we ran in to an issue while running some SQL jobs where we were trying to process the cubes.  We got an error saying failure stating 'NT SERVICE\SQLSERVERAGENT does not have access to Analysis Services. So this is a way to automate that wit…
What if you have to shut down the entire Citrix infrastructure for hardware maintenance, software upgrades or "the unknown"? I developed this plan for "the unknown" and hope that it helps you as well. This article explains how to properly shut down …
Via a live example, show how to extract information from SQL Server on Database, Connection and Server properties
Via a live example, show how to shrink a transaction log file down to a reasonable size.

656 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question