Dynamic update loop query on Sybase database


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Dynamic update loop query on Sybase database
# 1  
Old 12-09-2007
Dynamic update loop query on Sybase database

Hello Guys,

I'm new to Shell scripting, and i need someone to help me with this issue:

I'm trying to do a dynamic update query on Sysbase database table using shell script.

Lets say, the Update query is "update Table set id=X" , where X is dynamic value for the loop index.
If the loop is from 1 to 3, the update query have to be for X=1, 2 and 3.

Any advice on how to write that.
Thanks.

- Alaeddin
# 2  
Old 12-10-2007
Guys, any feedback or Help . . . . !!!!! :-)
# 3  
Old 12-10-2007
You might want to take a look into Perl and how you can write a little perl script to connect to your database and do the things you like.... check DBD::ASAny Perl Driver Download: Mobile Enterprise, Database Management iAnywhere - Sybase Inc

Regards,
Johan Louwers.
# 4  
Old 12-10-2007
Bug Connect to database(Sybase) using shell script and run a query.

Hi Buddy,

I have come across such a situation. Following is the code: Please check it

#=======================================================
# Get the Connection String for isql
#=======================================================
connection_str="-S $SERVER -U $SYBASE_USERNAME -D $DATABASE"
isql $connection_str <<EOF | egrep -v "Password:" > $TempFile1
$SYBASE_PASSWORD
{
"Please write your Sybase query in between this middle bracket."
}
go
EOF



Here
$connection_str = This would be used by shell script to connect to database in order to run the query.
$SERVER = Variable which stores the name of the remote server on which the database is installed.
$SYBASE_USERNAME = The username which the script on your behalf to connect to the database.
$DATABASE = The name of the database.

Please revert back in case of any issues.
Go on buddy...Ur prob is solved...
# 5  
Old 12-11-2007
Thanks Johan, but i'm planning to use perl as a Plan B, if i totally screwed up with Shell. "I'll revert to you on this as well once testing".

Hey Vicky Smilie,

Thanks for your response, i want to clear out these points:

1) What is $TempFile1 for, cause once i execute the script, i got this error
"./test3.sh: $TempFile1: ambiguous redirect".

2) Regarding the query, i want to do a loop on update, so teh loop will be shell script on DB update query, so shall i make while or for loop before the bracket, and then inculde the update query in-between !!!

Below is my code that is what i'v written:
#=======================================================
# Get the Connection String for isql
#=======================================================
SERVER=127.0.0.1
SYBASE_USERNAME=sa
DATABASE=mmsdb
SYBASE_PASSWORD=test
connection_str="-S $SERVER -U $SYBASE_USERNAME -D $DATABASE"
isql $connection_str <<EOF | egrep -v "Password:" > $TempFile1
$SYBASE_PASSWORD
{
#"Please write your Sybase query in between this middle bracket."
Insert into TEST values (3,"Test","TestDesc")
go
}
go
EOF
# 6  
Old 12-11-2007
Alaeddin,

TempFile1: its the name of a temproary file. Suppose if due to some prob the shell script is not able to connect to your database and you want the error in some file...We ve used temp file for this purpose. If you dont specify this den the error will be displayed on the shell prompt. If dis is ok wid u den u need not use d temp file.

Or u can do something like....declare the tempfile as u ve declared the other variables(specify d full path).

For the query:
Use the database query using while loop between the middle brackets...
You can use only database queries once the connection to database is eastablished....
And the database connection gets eastablished just after you give the isql command...
Try using the below code snippet in place of middle brackets.:

declare @i int
select @i = 1
while(@i <= 3)
begin
Insert into TEST values (3,"Test","TestDesc")
select @i = @i + 1
end


U should not use middle brackets dere..I had used it just to let you know the area where u need to write the query.
Try it out,buddy.....
# 7  
Old 12-11-2007
Hey Vicky Smilie,

Finally it works now, appreciate it so so much dear.
Beside i tried it directly for the connection as below:

#=======================================================
# Get the Connection String for isql
#=======================================================
isql -Usa -Ptest -I /opt/sybase/interfaces << EOF
use testdb
go
declare @i int
select @i = 1
while(@i <= 5)
begin
Insert into TEST values (@i,"Test","TestDesc")
select @i = @i + 1
end
go
EOF

Appreciate it Smilie

Johan, I'll move to do that in perl in a while, and hopefully it gonna work that i want to learn how that could be done.

Thanks.
- Alaeddin
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Update a database table in a for loop

Im trying to update an informix database table for each occurance of a head_barcode in a file called mw within a for loop please see below - cant get the syntax correct. any help please? for a in `cat /tmp/mw` do sql image - << STOP > /dev/null 2>&1 update doc_table set status =... (4 Replies)
Discussion started by: worky
4 Replies

2. Programming

Sybase ASE - Query Tuning - Need Suggestion

Dear Team Please provide suggestion on below query which is used in Sybase Adaptive Server Enterprise/15.7 (ASE). Query takes more time > 30 Mins to 1 Hr All required indexes are built Can we have any efficient approach to get the data retrieval faster for below query.Any help... (0 Replies)
Discussion started by: Perlbaby
0 Replies

3. Programming

Sybase ASE: Query to find correct format issue.

Hi Team , I am new to Sybase Adaptive Server Enterprise/15.7 (ASE) and need some guidance to find the different values in serial format column. SELECT DISTINCT SERIAL_FORMAT FROM PRODUCTS It has values with below format which contains 12 digits hexadecimal characters with... (2 Replies)
Discussion started by: Perlbaby
2 Replies

4. Programming

Hierarchical Query for Sybase database

Team I am using DBartisan tool for sybase database. I have a table that has below fields Employee_ID,EMP_Name,First_Nm,Last_Nm,Emp_Designation,Employee's_Manager is it possible to retrieve hierarchical data based on below fields Emp_Designation will have Soft Engg,SSE,Team Lead,... (6 Replies)
Discussion started by: Perlbaby
6 Replies

5. Shell Programming and Scripting

REINDEXING OF A DYNAMIC DATABASE

REINDEXING A DATABASE Hello, I have a database which in fact is a personal dictionary of a special kind to handle name homophones The structure is as follows: a=b=c=d=e=f This structure is an instruction to the program that whenever it encounters such a set of correlations it should treat them... (2 Replies)
Discussion started by: gimley
2 Replies

6. Shell Programming and Scripting

Execute stored procedure through script in sybase database and store the output in a .csv file

Hi, I have a sybase stored procedure which takes two input parameters (start_date and end_date) and when it get executed, it gives few records as an output. I want to write a unix script (ksh) which login to the sybase database, then execute this stored procedure (takes the input parameter as... (8 Replies)
Discussion started by: amit.mathur08
8 Replies

7. Windows & DOS: Issues & Discussions

how to connect to sybase database?

hi, I'd like to connect to a Sybase ASE 12 through a a graphic user interface (GUI) that run on windows and solaris10, because i need to do some querys. The database is running on solaris 10. I'm not an expert using databases, but i know how to use some SQL commands through command line... (3 Replies)
Discussion started by: danin
3 Replies

8. Programming

Need help with complex SQL query (Sybase)

Hello, I have three tables. I need an SQL query (preferably Sybase) that will return all of the stringID values of table B where the following conditions exist: (1) B.intID = A.intID (2) B.intID != C.intID or (B.intID = C.intID and (C.v1 = 0 or C.v2... (2 Replies)
Discussion started by: chatieremerrill
2 Replies

9. Shell Programming and Scripting

Print out loop index on the console after executing each sybase DB query

Hello Guys, Well, using shell script, I'm doing loop on DB query as below: isql -Usa -Ptest -I /opt/sybase/interfaces << EOF use testdb go declare @i int select @i = 1 while(@i <= 5) begin Insert into TEST values (@i,"Test","TestDesc") select @i = @i + 1 end go EOF The Issue... (2 Replies)
Discussion started by: Alaeddin
2 Replies

10. Shell Programming and Scripting

Connect to sybase database using Korn shell script

Hi, Can anyone please give me a script or let me know how to connect to a sybase database and execute a query using Korn shell scripts.Am new to Unix but i need to do this ASAP. Please help. Thanks, Gops (7 Replies)
Discussion started by: bhgopi
7 Replies
Login or Register to Ask a Question