is not an identifier error


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting is not an identifier error
# 1  
Old 06-15-2010
is not an identifier error

Hi gurus,

I am trying to execute a shell script which connects to the oracle db and get the values from a table and then it exports the values on UNIX. For this, I am creating a temp file which stores the values returned from the select query and then executes this file. Below is the code which does this operation.


Code:
SET FEEDBACK OFF
SET HEADING OFF
SET TRIMSPOOL ON
SET TIMING OFF
SET TERMOUT OFF
SET LINES 160
SPOOL ${TmpFile}
    SELECT 'export DBName='||SUBSTR(source_table_name,1,INSTR(source_table_name,'.' )-1  )|| ';' FROM  DW_JOB_STREAMS WHERE JOB_STREAM_ID = '${JobStreamId}'
    UNION SELECT 'export src_tbl_name='||SUBSTR(source_table_name,INSTR(source_table_name,'.' )+1  )|| ';' FROM  DW_JOB_STREAMS WHERE JOB_STREAM_ID = '${JobStreamId}'
    UNION SELECT 'export LastExtractDate=' ||''''|| TO_CHAR(LAST_EXTRACT_DATE, 'MM/DD/YYYY HH12:MI:SS' )  ||''''|| ';' FROM  DW_JOB_STREAMS WHERE JOB_STREAM_ID = '${JobStreamId}'
    UNION SELECT 'export Access_User='||LOWER(ACCESS_USER)|| ';' FROM  DW_JOB_STREAMS WHERE JOB_STREAM_ID = '${JobStreamId}';
SPOOL OFF
exit
EOF`
       RC=$?
           if [ $RC -ne 0 ] ; then
               echo "$0: ERROR! while retrieving the Last Extract Date for JOB STREAM ID ${JobStreamId}."
              exit 1
          fi
       . ${TmpFile}

I am able to see the values correctly in TmpFile. But when it executes in UNIX, I am getting the below error only for a particular value which is LastExtractDate. The value in the db table for this column is 15/06/2010 12:31:00 PM. But when i execute the script, I get the below error:
Code:
export: 12:31:00';: is not an identifier

It is not recognizing the date part before the timestamp.

Can someone shed some light on this.

Thanks,

Last edited by Scott; 06-15-2010 at 02:29 PM.. Reason: Code tags, please...
# 2  
Old 06-15-2010
Hi.

At the very least, you will have to wrap quotes around the "export DBName=" part.

i.e.
Code:
...
SELECT 'export DBName="'||SUBSTR(source_table_name,1,INSTR(source_table_name,'.' )-1  )|| '";' FROM  DW_JOB_STREAMS WHERE JOB_STREAM_ID = '${JobStreamId}'

...


Last edited by Scott; 06-15-2010 at 02:36 PM..
# 3  
Old 06-15-2010
It still fails with the same error.

export: 12:31:00'";: is not an identifier
# 4  
Old 06-15-2010
You haven't posted your complete script, which makes analysing it somewhat tricky.

i.e. where's the line that contains "sqlplus"; what is TmpFile, and where does it come from, etc.

Please post all that you have (including the update you made with the quotes). Thanks.
# 5  
Old 06-15-2010
Code:
#!/bin/ksh
WORKFLOW_NAME=$1
# Setup Informatica environment variables for this server
. /apps/informatica/shared/scripts/${HOSTNAME}_infa_setup.ksh
JobStreamId=${WORKFLOW_NAME}
set ORACLE_HOME=/oracle/product/10.2/bin
export ORACLE_HOME
export TmpFile=$INFMT_ADMIN_DIR/DATA/$FOLDER_NAME/ctrl/$WORKFLOW_NAME.$$
LOGON=`cat $INFMT_ADMIN_DIR/ctrl/logon_orcl_control_schema.txt`
`sqlplus -s $LOGON << EOF
SET FEEDBACK OFF
SET HEADING OFF
SET TRIMSPOOL ON
SET TIMING OFF
SET TERMOUT OFF
SET LINES 160
SPOOL ${TmpFile}
    SELECT 'export DBName='||SUBSTR(source_table_name,1,INSTR(source_table_name,'.' )-1  )|| ';' FROM  DW_JOB_STREAMS WHERE JOB_STREAM_ID = '${JobStreamId}'
    UNION SELECT 'export src_tbl_name='||SUBSTR(source_table_name,INSTR(source_table_name,'.' )+1  )|| ';' FROM  DW_JOB_STREAMS WHERE JOB_STREAM_ID = '${JobStreamId}'
    UNION SELECT 'export LastExtractDate="' ||''''|| TO_CHAR(LAST_EXTRACT_DATE, 'DD/MM/YYYY HH12:MI:SS' )  ||''''|| '";' FROM  DW_JOB_STREAMS WHERE JOB_STREAM_ID = '${JobStreamId}'
    UNION SELECT 'export Access_User='||LOWER(ACCESS_USER)|| ';' FROM  DW_JOB_STREAMS WHERE JOB_STREAM_ID = '${JobStreamId}';
SPOOL OFF
exit
EOF`
       RC=$?
           if [ $RC -ne 0 ] ; then
               echo "$0: ERROR! while retrieving the Last Extract Date for JOB STREAM ID ${JobStreamId}."
              exit 1
          fi
       . ${TmpFile}



---------- Post updated at 02:22 PM ---------- Previous update was at 02:21 PM ----------

Scott,

Thanks for the quick response. I have added the (") quotation marks in the script as suggested by you for one of the columns.
# 6  
Old 06-15-2010
Hi.

I think you need to apply the quotes to all of them in turn, not just one.

As an example:

Code:
$ cat Test1
eval `sqlplus -s scott/tiger << !
  set feedback off
  set heading off
  select 'export XX="' || sysdate || '";' from dual
  union
  select 'export YY="' || 123 || '";' from dual;
!`

echo $XX
echo $YY

Code:
$ ./Test1
15-JUN-10
123

# 7  
Old 06-15-2010
Hey Scott,

Problem is with only the LastExtractDate variable but not others. However I have put the quotations for all the variables and tried. It still did not work. What else might be the problem?

Thanks,
Sam
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Compilation Error--Undeclared Identifier

Hello, I am trying to install BBFTP software on my Mac (OS X), and am running into some compilation errors. Here is the code, the specific errors are listed after: #include <dirent.h> #include <errno.h> #include <fnmatch.h> #include <netinet/in.h> #include <syslog.h> #include <sys/stat.h>... (1 Reply)
Discussion started by: Tyler_92
1 Replies

2. Solaris

Is not a identifier error

Hi I am trying to execute a script. I have solaris 10, After i login i will toggle to BASH. The script tried to set a variable called CARBON_HOME. Even i tried to set it manually. But still it is saying the following error.:wall: " CARBON_HOME=/usr/wso2/wso2esb-4.0.0: is not an... (5 Replies)
Discussion started by: gnanagurus
5 Replies

3. Shell Programming and Scripting

error while extracting a line from a file based on identifier

here is the content of input file CREATE TABLE `bla bla bla` ( `allianceSiteId` int(11) DEFAULT NULL, `trunkGroupsId` int(11) DEFAULT NULL, `lastModified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, UNIQUE KEY `allianceSiteId`... (4 Replies)
Discussion started by: vivek d r
4 Replies

4. Shell Programming and Scripting

Identifier issue

Hi, We are in the process of migrating our servers from Solaris to AIX. During our testing phase, while we are testing the scripts(reccnt.int), we are getting the following error during execution: /reccnt.int: a:fname:b:dte:tme:eqind:norecs:cntr:c:d:e:f: is not an identifier It is... (6 Replies)
Discussion started by: pyaranoid
6 Replies

5. UNIX for Advanced & Expert Users

ORACLE_SID= ...: is not an identifier

Hello All, On My solaris 5.10 SPARC, i am always having problems setting my Oracle variables. even if it exists in the .profile file. below is an example $ export ORACLE_SID=test ORACLE_SID=test: is not an identifier even that the echo is returning the variable $ echo $ORACLE_SID... (3 Replies)
Discussion started by: beayni33
3 Replies

6. Shell Programming and Scripting

is not an identifier

Hi Guys... I am using the following codes in my script: SID_L=`cat /var/opt/oracle/oratab|grep -v "^#"|cut -f1 -d: -s` SID_VAR=$SID_L for SID_RUN in $SID_VAR do ORACLE_HOME=`grep ^$SID_RUN /var/opt/oracle/oratab | \ awk -F: '{print $2}'` ;export ORACLE_HOME export... (2 Replies)
Discussion started by: Phuti
2 Replies

7. Shell Programming and Scripting

not an identifier

Hi I have already gone through this topic on this forum, but still i am getting same problem. I am using solaris 10. my login shell is /usr/bash i have got a script as below /home/gyan> cat 3.cm #!/usr/bin/ksh export PROG_NAME=rpaa001 if i run this script as below , it works fine... (3 Replies)
Discussion started by: gyanibaba
3 Replies

8. Solaris

-sh: is not an identifier

Hi , I am getting the following message when log into my unix account in sun solaris (version5.9)server. -sh: ORACLE_HOME=/apps/oracle/product/10.2.0/client_1: is not an identifier The ORACLE_HOME is set in .profile file. Another thing is that SID is also set inside .profile like... (4 Replies)
Discussion started by: megh
4 Replies

9. Shell Programming and Scripting

': not a valid identifier

I am trying to write a bash script. I am able to do simple things like pass arguments, assign variables and echo the results. However, when I try to declare and array or anything a little more complicated I get ': not a valid identifier Here is my code so far: #!/bin/bash echo start t... (7 Replies)
Discussion started by: script123
7 Replies

10. Shell Programming and Scripting

Getting is not an identifier error

Hi all, I am getting this error while setting CLASSPTH using a script my script is #!bin/ksh export CLASSPATH=$CLASSPATH:<some path>:<some path> If i do this thing on shell prompt individually it is working fine. but while using in shell script it is giving error. better if you... (12 Replies)
Discussion started by: swat
12 Replies
Login or Register to Ask a Question