Table is not updating

 
Thread Tools Search this Thread
Homework and Emergencies Emergency UNIX and Linux Support Table is not updating
# 29  
Old 03-27-2012
Quote:
Originally Posted by rkrish
[..]It also displayed the same:
Code:
 /p2k/L10.21A/devlp/root/global/data/usage/DAILY> echo echo  \ $DB_USER_NAME |ksh
secadmin
 /p2k/L10.21A/devlp/root/global/data/usage/DAILY> echo echo \  $DB_PASSWORD | ksh
vivadmin
 /p2k/L10.21A/devlp/root/global/data/usage/DAILY> echo echo \ $TWO_TASK|ksh
ltd121a

That is also not what Scott asked. There should not be spaces between the \ and the $
Try copy-and-pasting, otherwise.
# 30  
Old 03-27-2012
Quote:
Originally Posted by Scrutinizer
That is also not what Scott asked. There should not be spaces between the \ and the $
Try copy-and-pasting, otherwise.
Code:
/p2k/L10.21A/devlp/root/global/data/usage/DAILY/AuditGroupLogs_20120327035219> echo echo \$DB_USER_NAME|ksh
secadmin

it also resulted the same.
is there anyother way of passing arguments a,b,c to the sql other than this :
Code:
nawk '{{print $1,$2,$3}}'  ./$DirectoryName/AuditGroupTableTableData_$TimeStamp.txt | while read a b c
do
echo $a
echo $b 
echo $c
ret=`sqlplus -s $db_user/$db_pwd@$db_sid  $a $b $c <<EOF

# 31  
Old 03-27-2012
Note: Before you run your tests with sqplplus. You can also replace "sqlplus $db_user/$db_pwd@$db_sid" with "cat" to determine if the input looks OK.

What happens when you substitute the parameters in the here document itself?

Code:
sqlplus  $db_user/$db_pwd@$db_sid <<EOF

SET HEADING OFF
SET SERVEROUTPUT ON
SET FEEDBACK OFF
DECLARE
CNT  NUMBER(5);
DROPCNT NUMBER(5);
ERRORCNT NUMBER(5);
BEGIN
SELECT COUNT(*) INTO CNT FROM USAGE_INTRNL_ERROR WHERE AUDIT_GROUP_ID='$a';

IF ( CNT != $c) THEN
  SELECT INTRL_DROP_QTY,INTRL_ERROR_QTY INTO DROPCNT,ERRORCNT 
     FROM USAGE_AUDIT_GROUP WHERE AUDIT_GROUP_NBR='$a'; 

     DROPCNT :=DROPCNT-CNT;

     UPDATE USAGE_AUDIT_GROUP 
      SET INTRL_DROP_QTY='DROPCNT' ,INTRL_ERROR_QTY='CNT'  
      WHERE  AUDIT_GROUP_NBR='$a' ;
COMMIT;

END IF;
END;
EXIT;
EOF

$b is not used anywhere?

BTW, instead of the nawk construction you could try:
Code:
while read a b c x
do
sqlplus...
..
done < "./$DirectoryName/AuditGroupTableTableData_$TimeStamp.txt"

This allows you to put the sqplus return code into a variable, should you want to.

Last edited by Scrutinizer; 03-27-2012 at 06:10 AM..
# 32  
Old 03-27-2012
You can not pass arguments to SQL*Plus this way.
There are 2 possible ways you can go:
1) use the shell variables in your here-document ($a instead of &1,...) EDIT: like Scrutinizer suggests...
2) put the SQL-commands into a SQL*Plus script. That script accepts parameters.
Quote:
Originally Posted by SQL*Plus usage message
...
<start> is: @<URL>|<filename>[.<ext>] [<parameter> ...]

Runs the specified SQL*Plus script from a web server (URL) or the
local file system (filename.ext) with specified parameters that
will be assigned to substitution variables in the script.
# 33  
Old 03-27-2012
Quote:
Originally Posted by Scrutinizer
Note: Before you run your tests with sqplplus. You can also replace "sqlplus $db_user/$db_pwd@$db_sid" with "cat" to determine if the input looks OK.

What happens when you substitute the parameters in the here document itself?

Code:
sqlplus  $db_user/$db_pwd@$db_sid <<EOF

SET HEADING OFF
SET SERVEROUTPUT ON
SET FEEDBACK OFF
DECLARE
CNT  NUMBER(5);
DROPCNT NUMBER(5);
ERRORCNT NUMBER(5);
BEGIN
SELECT COUNT(*) INTO CNT FROM USAGE_INTRNL_ERROR WHERE AUDIT_GROUP_ID='$a';

IF ( CNT != $c) THEN
  SELECT INTRL_DROP_QTY,INTRL_ERROR_QTY INTO DROPCNT,ERRORCNT 
     FROM USAGE_AUDIT_GROUP WHERE AUDIT_GROUP_NBR='$a'; 

     DROPCNT :=DROPCNT-CNT;

     UPDATE USAGE_AUDIT_GROUP 
      SET INTRL_DROP_QTY='DROPCNT' ,INTRL_ERROR_QTY='CNT'  
      WHERE  AUDIT_GROUP_NBR='$a' ;
COMMIT;

END IF;
END;
EXIT;
EOF

$b is not used anywhere?

BTW, instead of the nawk construction you could try:
Code:
while read a b c x
do
sqlplus...
..
done < "./$DirectoryName/AuditGroupTableTableData_$TimeStamp.txt"

This allows you to put the sqplus return code into a variable, should you want to.
I have tried it gave me some wierd output but one good thing is i thnk it got connected to db now:
Code:
/p2k/L10.21A/devlp/root/global/data/usage/DAILY> ModifyUsgAuditGroupTable.ksh 120318
********Started processing at 20120327051020**********
 log file path is : ./AuditGroupLogs_20120327051020/AuditUpdate_20120327051020.LOG
1LK81JVDE2HRNDG
3
0

SQL*Plus: Release 10.2.0.4.0 - Production on Tue Mar 27 05:10:31 2012

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> SQL> SQL> SQL> SQL>   2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22  Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
1LMXTJJD0W28TX2
3
0

SQL*Plus: Release 10.2.0.4.0 - Production on Tue Mar 27 05:10:34 2012

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> SQL> SQL> SQL> SQL>   2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22  Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
1LS1XJGDEVWAC5T
7
1

SQL*Plus: Release 10.2.0.4.0 - Production on Tue Mar 27 05:10:35 2012

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> SQL> SQL> SQL> SQL>   2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22  Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

The code used:
Code:
while read a b c ; do
echo $a
echo $b
echo $c
sqlplus   $db_user/$db_pwd@$db_sid <<EOF

SET HEADING OFF
SET SERVEROUTPUT ON
SET FEEDBACK OFF
DECLARE
CNT  NUMBER(5);
DROPCNT NUMBER(5);
ERRORCNT NUMBER(5);
BEGIN
SELECT COUNT(*) INTO CNT FROM USAGE_INTRNL_ERROR WHERE AUDIT_GROUP_ID='$a';

IF ( CNT != $c) THEN
  SELECT INTRL_DROP_QTY,INTRL_ERROR_QTY INTO DROPCNT,ERRORCNT 
     FROM USAGE_AUDIT_GROUP WHERE AUDIT_GROUP_NBR='$a'; 

     DROPCNT :=DROPCNT-CNT;

     UPDATE USAGE_AUDIT_GROUP 
      SET INTRL_DROP_QTY='DROPCNT' ,INTRL_ERROR_QTY='CNT'  
      WHERE  AUDIT_GROUP_NBR='$a' ;
COMMIT;

END IF;
END;
EXIT;
EOF
done < "./$DirectoryName/AuditGroupTableTableData_$TimeStamp.txt"

---------- Post updated at 04:22 AM ---------- Previous update was at 04:12 AM ----------

Quote:
Originally Posted by cero
You can not pass arguments to SQL*Plus this way.
There are 2 possible ways you can go:
1) use the shell variables in your here-document ($a instead of &1,...) EDIT: like Scrutinizer suggests...
2) put the SQL-commands into a SQL*Plus script. That script accepts parameters.
I have tried with option 1..the output of it I just posted..it also didnt update

and for option 2..
Am not clear.
I am already having a txt file with contents :

Code:
1LK81JVDE2HRNDG              3               0                                                                       
                                                                                                                     
                                                                  
1LMXTJJD0W28TX2              3               0                                                                       
                                                                                                                     
                                                                  
1LS1XJGDEVWAC5T              7               1

I was passing this file to nawk to extract $a,$b,$c from the file.
the sql file you were talking about ..what sholud the content of it Smilie
# 34  
Old 03-27-2012
Thank you for posting the full sqlplus error message. I don't have the same version of Oracle as you and we all needed to read it.
Quote:
<start> is: @<URL>|<filename>[.<ext>] [<parameter> ...]
The sqlplus syntax to invoke a program with parameters does not allow for the parameters to be passed to an script read from STDIN.

The correct approach is to put the whole SQL program into a ".sql" file (as you were advised before) and call it with parameters from the sqlplus line.
An alternative is to use the Shell approach to modify the program prior to execution as per Scrutinizer's advice.
# 35  
Old 03-27-2012
I suggested
Code:
while read a b c x

by the way, not:
Code:
while read a b c

To repeat: First check if the input is to your liking by replacing sqlplus.. with cat..., before you do any tests on your test database..

Quote:
I am already having a txt file with contents :

Code:
1LK81JVDE2HRNDG              3               0                                                                       
                                                                                                                     
                                                                  
1LMXTJJD0W28TX2              3               0                                                                       
                                                                                                                     
                                                                  
1LS1XJGDEVWAC5T              7               1

Is that the exact content? because I see empty lines that should not be there....
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Web Development

Getting Rid of Annoying Bootstrap Table Borders and Wayward Table Lines

Bootstrap is great; but we have had some issues with Bootstrapped <tables> (and legacy <fieldset> elements) showing annoying, wayward lines. I solved that problem today with this simple jQuery in the footer: <script> $(function(){ $('tr, td, fieldset,... (0 Replies)
Discussion started by: Neo
0 Replies

2. Shell Programming and Scripting

Run the Script from any stage by updating data from Oracle Table.

I have 100 Scripts, each containing 10-15 SQL's in them. Each Script run for 40 mins to 1 hour 30 mins. In the event of Failure in any step, if i re-start the Script, it will start running from the beginning. Which is waste of time. So in order handle this, i made the script to run from the... (7 Replies)
Discussion started by: kiran1992
7 Replies

3. Shell Programming and Scripting

Build a table from a list by comparing existing table entries

I am new to this shell scripting.... I have a file which contains list of users. This files get updated when new user comes into the system. I want to create script which will give a table containing unique list of users. When I say unique, it means script should match table while parsing... (3 Replies)
Discussion started by: dchavan1901
3 Replies

4. UNIX for Dummies Questions & Answers

Creating a condensed table from a pre-existing table in putty

Hello, I'm working with putty on Windows 7 professional and I'd like to know if there's a way to gather specific lines from a pre-existing table and make a new table with that information. More specifically, I'd like the program to look at a specific column, say column N, and see if any of the... (5 Replies)
Discussion started by: Deedee393
5 Replies

5. Shell Programming and Scripting

select values from db1 table and insert into table of DB2

Hi I am having three oracle databases running in three different machine. their ip address is different. from one of the DB am able to access both the databases.(means am able to select values and insert values in to tables individually.) I need to fetch some data from DB1 table(say DB1 ip is... (2 Replies)
Discussion started by: aemunathan
2 Replies

6. Shell Programming and Scripting

updating a column in a unix table for a particular row

Hi, I have the following requirement. I have a unix table as below progname par1 par2 par3 par4 PROG1 abc def 0012 ooo PROG2 wed xas 0100 xxx PROG3 kkk ppp 0004 ppp Different programs(ex:PROG1,PROG2..) accesses this table and update... (5 Replies)
Discussion started by: thanuman
5 Replies

7. Shell Programming and Scripting

awk updating one file with another, comparing, updating

Hello, I read and search through this wonderful forum and tried different approaches but it seems I lack some knowledge and neurones ^^ Here is what I'm trying to achieve : file1: test filea 3495; test fileb 4578; test filec 7689; test filey 9978; test filez 12300; file2: test filea... (11 Replies)
Discussion started by: mecano
11 Replies

8. Shell Programming and Scripting

script for updating table using file(

Hi, Data file path (.txt) Control file(.ctl) I have delimited file(|). Sample data: 1|name|50009|DS24|0|12 2|name|30009|DS24|0|13 3|name|20409|DS24|0|14 4|name|20009|DS24|0|15 5|name|10009|DS24|0|16 I want to load this data into a oracle table (update and insert) Please help me... (1 Reply)
Discussion started by: unihp1
1 Replies

9. UNIX for Dummies Questions & Answers

Updating table on UNIX server using SFTP

Hi, I have a requirement where in I have to connect to an Unix database server using SFTP. After connecting I have to write some data to one of the tables in UNIX. Can anyone tell me the UNIX commands to open and update database table. Thanks, Pallavi (1 Reply)
Discussion started by: Pallavi_gondkar
1 Replies

10. Shell Programming and Scripting

updating a column in oracle table using shell script

Hi friends, i am having a variable declared in .profile.i am changing its value in a shell script and then i am connecting to oracle and then from there i am calling a .sql called update.sql STATUS is the variable declared in the .profile =============================== if sqlplus <<END... (3 Replies)
Discussion started by: sveera
3 Replies
Login or Register to Ask a Question