Merge invalid identifier

using oracle 9i database
SQL> desc allvouchers
Name                                      Null?    Type
V_TYPE                                             VARCHAR2(3)
V_NO                                               NUMBER(6)
V_DATE                                             DATE
V_CHQ                                              VARCHAR2(20)
V_BANKCODE                                         VARCHAR2(20)
V_DEBIT                                            NUMBER(15,2)
V_CREDIT                                           NUMBER(15,2)
V_NARRATION                                        VARCHAR2(200)
SQL> desc gl_pv;
Name                                      Null?    Type
PV_VOUCHER_TYPE                                    VARCHAR2(3)
PV_NO                                              NUMBER(6)
PV_DATE                                            DATE
I am using Merge showing error
SQL>   MERGE INTO allvouchers d
  2       USING (select pv_voucher_type, pv_no, pv_date from gl_Pv) p
  3    on (d.v_no = p.pv_no)
  4       WHEN MATCHED THEN
  5           UPDATE SET d.v_type = p.pv_voucher_type,
  6        d.v_no = p.pv_no,
  7       d.v_date = p.pv_date
  8       WHEN NOT MATCHED THEN
  9           INSERT (d.v_type , d.v_no, d.v_date)
10           VALUES (p.pv_voucher_type, p.pv_no , p.pv_date)
11  /
  on (d.v_no = p.pv_no)
ERROR at line 3:
ORA-00904: "D"."V_NO": invalid identifier

since d.v_no already equals p.pv_no you don't need to update it
MERGE INTO allvouchers d
     USING (SELECT pv_voucher_type, pv_no, pv_date FROM gl_Pv) p
        ON (d.v_no = p.pv_no)
WHEN MATCHED
THEN
   UPDATE SET d.v_type = p.pv_voucher_type, d.v_date = p.pv_date
WHEN NOT MATCHED
THEN
   INSERT     (d.v_type, d.v_no, d.v_date)
       VALUES (p.pv_voucher_type, p.pv_no, p.pv_date)

Similar Messages

  • Calling multiple DB functions in same analysis throws Invalid Identifier

    Hi all,
    I am trying to invoke multiple database functions using evaluate function in a report, and as soon as I add the second function, I keep running into the below error. As you all know we could call two functions in a single select statement, so I would assume it to work the same way in BI.
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 17001] Oracle Error code: 904, message: ORA-00904: : invalid identifier at OCI call OCIStmtExecute. [nQSError: 17010] SQL statement preparation failed. (HY000)
    Has anyone ran into this issue before ?
    Thanks,
    -A.Y.

    veeravalli wrote:
    Hi Amith,
    Can you try with only second funtion (excluding first evaluate) and with other columns? to make sure your 2nd evaluate function is fine.Yes, they all work if used individually. Combining each other is causing the issue.
    As a work around I am writing a package to merge everything together for now, but it would be nice to have this feature.
    One thing to note is if you actually take the physical sql and run it against database, it works just fine.

  • 11.5.10.2 to R12.1.1 upgrade : ORA-20000: Oracle Error Rebuild1= -904 - ORA-00904: "TAB"."USER_PROP": invalid identifier

    EBS version : 11.5.10.2
    DB version : 11.2.0.3
    OS version : AIX 6.1 (64 bit)
    As a part of 11.5.10.2 to R12.1.1 upgrade, while applying merged 12.1.1 upgrade driver(u6678700.drv), I got below error :
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ATTENTION: All workers either have failed or are waiting:
    FAILED: file ECXQBKUP.sql on worker 1.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++
    Worker 1 log:
    ========================================
    Start time for file is: Mon Aug 05 2013 10:54:29
    sqlplus -s APPS/***** @/fmstop/r12apps/apps/apps_st/appl/ecx/12.0.0/patch/115/sql/ECXQBKUP.sql &un_apps &pw_apps &un_fnd
    PL/SQL procedure successfully completed.
    PL/SQL procedure successfully completed.
    PL/SQL procedure successfully completed.
    PL/SQL procedure successfully completed.
    declare
    ERROR at line 1:
    ORA-20000: Oracle Error Rebuild1= -904 - ORA-00904: "TAB"."USER_PROP": invalid
    identifier
    ORA-06512: at line 46

    I tried fix inside 12.0.6 Patch 6728000 Fails On Ecxqbkup.Sql (Doc ID 760122.1) but getting same error :
    drix10:/fmstop/r12apps/apps/apps_st/appl/ecx/12.0.0/patch/115/sql>sqlplus apps/apps
    SQL*Plus: Release 10.1.0.5.0 - Production on Tue Aug 6 11:51:44 2013
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    SQL> @ECXQBKUP.sql apps apps applsys
    PL/SQL procedure successfully completed.
    PL/SQL procedure successfully completed.
    PL/SQL procedure successfully completed.
    PL/SQL procedure successfully completed.
      select count(*) into in_cnt from ecx_inqueue
    ERROR at line 26:
    ORA-06550: line 26, column 36:
    PL/SQL: ORA-00942: table or view does not exist
    ORA-06550: line 26, column 3:
    PL/SQL: SQL Statement ignored
    drix10:/home/appltest>sqlplus '/as sysdba'
    SQL*Plus: Release 11.2.0.3.0 Production on Tue Aug 6 11:47:38 2013
    Copyright (c) 1982, 2011, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    SQL> exec dbms_aqadm.drop_queue_table( queue_table=> 'APPS.ECX_INQUEUE',force=>true);
    PL/SQL procedure successfully completed.
    SQL> exec dbms_aqadm.drop_queue_table( queue_table=> 'APPS.ECX_OUTQUEUE',force=>true);
    PL/SQL procedure successfully completed.
    Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    drix10:/fmstop/r12apps/apps/apps_st/appl/ecx/12.0.0/patch/115/sql>
    drix10:/fmstop/r12apps/apps/apps_st/appl/ecx/12.0.0/patch/115/sql>sqlplus apps/apps
    SQL*Plus: Release 10.1.0.5.0 - Production on Tue Aug 6 11:52:07 2013
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    SQL> @ECXINQ.sql
    Enter value for 4: system
    Enter value for 5: manager
    Connected.
    Enter value for 1: apps
    Grant succeeded.
    Grant succeeded.
    Grant succeeded.
    Enter value for 2: apps
    Connected.
    PL/SQL procedure successfully completed.
    Commit complete.
    Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    drix10:/fmstop/r12apps/apps/apps_st/appl/ecx/12.0.0/patch/115/sql>
    drix10:/fmstop/r12apps/apps/apps_st/appl/ecx/12.0.0/patch/115/sql>sqlplus apps/apps
    SQL*Plus: Release 10.1.0.5.0 - Production on Tue Aug 6 11:53:38 2013
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    SQL> @ECXGINQ.sql
    Enter value for 4: system
    Enter value for 5: manager
    Connected.
    Enter value for 1: apps
    Grant succeeded.
    Grant succeeded.
    Grant succeeded.
    Enter value for 2: apps
    Connected.
    PL/SQL procedure successfully completed.
    Commit complete.
    Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    drix10:/fmstop/r12apps/apps/apps_st/appl/ecx/12.0.0/patch/115/sql>
    drix10:/fmstop/r12apps/apps/apps_st/appl/ecx/12.0.0/patch/115/sql>sqlplus apps/apps
    SQL*Plus: Release 10.1.0.5.0 - Production on Tue Aug 6 11:54:04 2013
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    SQL> @ECXOUTQ.sql
    Enter value for 4: system
    Enter value for 5: manager
    Connected.
    Enter value for 1: apps
    Grant succeeded.
    Grant succeeded.
    Grant succeeded.
    Enter value for 2: apps
    Connected.
    PL/SQL procedure successfully completed.
    Commit complete.
    Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    drix10:/fmstop/r12apps/apps/apps_st/appl/ecx/12.0.0/patch/115/sql>
    drix10:/fmstop/r12apps/apps/apps_st/appl/ecx/12.0.0/patch/115/sql>sqlplus apps/apps @ECXQBKUP.sql apps apps applsys
    SQL*Plus: Release 10.1.0.5.0 - Production on Tue Aug 6 11:54:26 2013
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    PL/SQL procedure successfully completed.
    PL/SQL procedure successfully completed.
    PL/SQL procedure successfully completed.
    PL/SQL procedure successfully completed.
    PL/SQL procedure successfully completed.
    declare
    ERROR at line 1:
    ORA-20000: Oracle Error Rebuild1= -904 - ORA-00904: "TAB"."USER_PROP": invalid
    identifier
    ORA-06512: at line 46
    Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options

  • Internal SYS_OP_ATG function generates "ORA-00904: : invalid identifier"

    After gathering system statistics a MERGE statement within a PLSQL block now always raises "ORA-00904: : invalid identifier". Investigation points to internal SQL executed by the CBO using the SYS_OP_ATG function to be the culprit. What is this function and why does it raise "ORA-00904: : invalid identifier"? As a temporary solution deleting system statistics has made the problem disappear. My concern is that it will reappear.
    Merge statement is within a procedure within a package. Nothing had been re-compiled. System statistics were gathered then the following statement errors every time. There is an exception handler around it which raises the "ORA-00904: : invalid identifier". Delete system stats and it all works fine again:
    MERGE INTO lp_data lp
    USING (
    SELECT
    f.ubimsg_id ubimsg_id,
    f.endpoint_id endpoint_id,
    f.msg_created_date msg_created_date,
    t.end_time end_time,
    DECODE(t.units_used,255,0, t.units_used) units_used,
    DECODE(t.units_used,255,'N', 'Y') reading_received
    FROM TABLE (CAST (tab_lp_values AS load_profiles)) t,
    (SELECT ubirec.ubimsg_id ubimsg_id ,ubirec.endpoint_id endpoint_id, ubirec.msg_created_date msg_created_date FROM dual) f
    ) lp_rec
    on (lp.endpoint_id = lp_rec.endpoint_id
    and lp.end_time = lp_rec.end_time)
    when matched then
    update set lp.entry_date = lp_rec.msg_created_date,
    lp.ubimsg_id = lp_rec.ubimsg_id,
    lp.units_used = lp_rec.units_used / 10,
    lp.reading_received = lp_rec.reading_received
    when not matched then
    insert (lp.endpoint_id,
    lp.end_time,
    lp.entry_date,
    lp.ubimsg_id,
    lp.units_used,
    lp.reading_received)
    values (lp_rec.endpoint_id,
    lp_rec.end_time,
    lp_rec.msg_created_date,
    lp_rec.ubimsg_id,
    lp_rec.units_used / 10,
    lp_rec.reading_received );
    The line FROM TABLE (CAST (tab_lp_values AS load_profiles)) t casts a plsql object collection. An SQL trace showed the following SQL which must be internal SQL generated for the MERGE statement.
    SELECT distinct TBL$OR$IDX$PART$NUM("LP_DATA", 0, 1, 0, "END_TIME") FROM
    (SELECT "LP_REC"."END_TIME" "END_TIME" FROM (SELECT :B1 "UBIMSG_ID",:B2 "ENDPOINT_ID",:B3 "MSG_CREATED_DATE",
    SYS_OP_ATG(VALUE(KOKBF$),1,2,2) "END_TIME",
    DECODE(SYS_OP_ATG(VALUE(KOKBF$),2,3,2),255,0,SYS_OP_ATG(VALUE(KOKBF$),2,3,2)) "UNITS_USED",
    DECODE(SYS_OP_ATG(VALUE(KOKBF$),2,3,2),255,'N','Y') "READING_RECEIVED"
    FROM TABLE(CAST(:B4 AS "LOAD_PROFILES") ) "KOKBF$","SYS"."DUAL" "DUAL") "LP_REC") ORDER BY 1
    Without system statistics the trace did not have this statement in it, and the explain plan for the MERGE differed.
    Oracle 11.1.0.7.0 Windows 32-BIT.
    select * from v$version;
    Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production
    PL/SQL Release 11.1.0.7.0 - Production
    CORE 11.1.0.7.0 Production
    TNS for 32-bit Windows: Version 11.1.0.7.0 - Production
    NLSRTL Version 11.1.0.7.0 - Production
    SQL> show parameter compatible
    compatible string 11.1.0.0.0
    Any help to explain / resolve this issue would be much appreciated.

    Duplicate thread: CBO on 11G generates ORA-00904 with SYS_OP_ATG

  • Table creation and getting  invalid identifier

    Thank you so much Ed (and all who replied) to my previious post !!!!, You are all being extremely helpful,
    I actually have another issue... SHould I repost a new thread or continue on this one?
    Here is my issue.
    create table DonationEvent
    ( "EventID" NUMBER(1,1) Not Null,
    "EventNumber" NUMBER(1,1) Not Null,
    "Type" Char(30) Not Null,
    "OrganizerName" Char(30) Not Null,
    "Location" Char(30) Not Null,
    "Date" NUMBER(10,1) Not Null,
    "Duration" Char(30) Null,
    "DonationTotal" NUMBER(10,1) Not Null,
    Primary Key (EventID),
    Getting ORA-00904: : invalid identifier
    Also I am using Express Edition 10g, how can I get a context view to see the line where error is occuring?

    user8776250 wrote:
    Thank you so much Ed (and all who replied) to my previious post !!!!, You are all being extremely helpful,
    I actually have another issue... SHould I repost a new thread or continue on this one?
    Here is my issue.
    create table DonationEvent
    ( "EventID" NUMBER(1,1) Not Null,
    "EventNumber" NUMBER(1,1) Not Null,
    "Type" Char(30) Not Null,
    "OrganizerName" Char(30) Not Null,
    "Location" Char(30) Not Null,
    "Date" NUMBER(10,1) Not Null,
    "Duration" Char(30) Null,
    "DonationTotal" NUMBER(10,1) Not Null,
    Primary Key (EventID),
    Getting ORA-00904: : invalid identifier
    Also I am using Express Edition 10g, how can I get a context view to see the line where error is occuring?Does Express edition have sqlplus?
    SQL> set echo on
    SQL> @doit1
    SQL> create table DonationEvent
      2  ( EventID NUMBER(1,1) Not Null,
      3  EventNumber NUMBER(1,1) Not Null,
      4  Type Char(30) Not Null,
      5  OrganizerName Char(30) Not Null,
      6  Location Char(30) Not Null,
      7  Date NUMBER(10,1) Not Null,
      8  Duration Char(30) Null,
      9  DonationTotal NUMBER(10,1) Not Null,
    10  Primary Key (EventID),
    11  );
    Date NUMBER(10,1) Not Null,
    ERROR at line 7:
    ORA-00904: : invalid identifier
    SQL>And as SB said,
    1) In oracle you really, really, REALLY don't want mixed case object (column, table, etc) names. Lose the double quotes.
    2) don't use reserved words (like 'date') as object names.
    also
    3) there's no good reason to use CHAR instead of VARCHAR2
    4) If you want a date (indicated by your badly named column 'date', make the datatype DATE, not number
    5) you need to look at how your NUMBER columns are defined and ask yourself if that's what you really want. NUMBER(1,1) means one digit, with one digit in the decimal location. NUMBER(10,1) means a total of 10 digits, with one of them in the decimal location
    SQL> create table DonationEvent
      2  ( EventID NUMBER(1,1) Not Null primary key,
      3    DonationTotal NUMBER(10,1) Not Null
      4  );
    Table created.
    SQL> --
    SQL> insert into donationevent values (1.2, 1234567891);
    insert into donationevent values (1.2, 1234567891)
    ERROR at line 1:
    ORA-01438: value larger than specified precision allowed for this column
    SQL> insert into donationevent values ( .2, 1234567891);
    insert into donationevent values ( .2, 1234567891)
    ERROR at line 1:
    ORA-01438: value larger than specified precision allowed for this column
    SQL> insert into donationevent values ( .2, 123456789.1);
    1 row created.
    SQL> insert into donationevent values ( .3, 12345678.9);
    1 row created.
    SQL> --
    SQL> commit;
    Commit complete.
    SQL> --
    SQL> select * from donationevent;
       EVENTID DONATIONTOTAL
            .2     123456789
            .3    12345678.9
    2 rows selected.
    SQL>

  • PL/SQL: ORA-00904: invalid identifier (DG4ODBC 11.2.0.2 & MySQL)

    I have a PL/SQL script processing information between Oracle database and MySQL database. My script ran perfectly with DG4ODBC 11.1.0.7. Then we upgraded Oracle to 10.2.0 and DG4ODBC 11.2.0.2. Now if I run my script from Solaris command line like ./myscript.shl, I get the following errors:
    PL/SQL: ORA-00904: "cmswhit_moodle1"."mdl_grade_grades"."finalgrade": invalid identifier
    PL/SQL: ORA-00904: "cmswhit_moodle1"."mdl_question_states"."attempt": invalid identifier
    The strange thing is if I run the same query by cut and paste into sqlplus from command line, the query works perfectly without any problems.
    What is the cause of this problem?
    Any help would be greatly appreciated.
    Jeffrey

    Hi Klaus,
    The problem was solved after I updated MySQL ODBC to a new version from 5.1.8 to 5.1.13.
    Summary of the problem and its solution:
    The Problem: It appears that dg4odbc 11.2.0.2 requires a newer version of MyODBC. Previously I used MyODBC 5.1.8 which ran into problems with dg4odbc 11.20.0.2.
    The Solution: After I updated MyODBC to 5.1.13, my PL/SQL scripts all work.
    I need to point out that with MyODBC 5.1.8, I can run queries and updates from SQL*Plus console, but now PL/SQL scripts.
    I'll close this thread.
    Once again, thank you and happy holidays.
    Jeffrey

  • Discoverer report :ORA -00904 Invalid Identifier

    Hi ,
    we are using an apps mode EUL (version4i) ,
    in the business area "Account Receivables"--->Customer Transaction Lines Folder,
    when we pull up any item from this folder to create a report, it shows a
    "ORA-00904 Invalid Identifier " error
    how to fix it , whether the Item might be Deleted in view definition of this folder,
    just a refresh of the folder is enough ?
    thanks in advance

    Hi,
    Refreshing the folder should be your first step.
    Rod West

  • Report parameters being passed in URL - invalid identifier error

    Hi
    Id anyone aware of any format in which we should be passing values in the url to the report deployed on the server?
    A parameter that takes in the format 'e123','e234' - example for emp_id parameter.
    If we pass in this form, even a single value as 'e123' in the url to run the report -
    The value e123 is taken in single quotes and it displays the error
    REP-300: "e123": invalid identifier
    That is, it displays the error as if the string was entered in double quotes.

    Hi, Aaron.
    I tried what you said, and my code wouldn't parse correctly. Let me show you the whole module of PL/SQL that I'm dealing with here. I did not write this. This is something I'm maintaining and updating. The part that chokes is near the bottom.
    declare
    l_sql varchar2(4000) := 'select user_name,total from (select user_name,count(*) total from eba_ver2_cust_activity ' ;
    begin
    if :P23_START_DATE is not null and :P23_END_DATE is not null then
    l_sql := l_sql || ' where ACTIVITY_DATE between ''' || to_char(to_date(:P23_START_DATE,'dd-mon-yyyy'),'dd-mon-yyyy')
    || ''' and ' || '''' || to_char(to_date(:P23_END_DATE,'dd-mon-yyyy') ,'dd-mon-yyyy') || '''' ;
    elsif :P23_START_DATE is not null then
    l_sql := l_sql || ' where ACTIVITY_DATE >= ''' || to_char(to_date(:P23_START_DATE,'dd-mon-yyyy'),'dd-mon-yyyy') ||
    elsif :P23_END_DATE is not null then
    l_sql := l_sql || ' where ACTIVITY_DATE <= ''' || to_char(to_date(:P23_END_DATE,'dd-mon-yyyy'),'dd-mon-yyyy') || ''''
    end if;
    if :P23_ACTIVITY_TYPE != '%null%' and :P23_ACTIVITY_TYPE is not null then
    if :P23_START_DATE is not null or :P23_END_DATE is not null then
    l_sql := l_sql || ' and activity_type_id = ' || :P23_ACTIVITY_TYPE ;
    else
    l_sql := l_sql || ' where activity_type_id = ' || :P23_ACTIVITY_TYPE ;
    end if;
    end if;
    l_sql := l_sql || ' group by user_name )' ;
    return l_sql ;
    end ;
    I appreciate all the help. As for the job market for Apex programmers around here, I wouldn't know. I was a COBOL programmer for many years. I'm approaching retirement, and this will probably be my last IT job.
    Steve "the n00b" in Raleigh NC

  • Exception: java.sql.SQLException: ORA-00904: "SEQ_NAME": invalid identifier

    Hi everyone,
    we are facing the below issue when trying to schedule a BI report.
    Error Details:
    +oracle.apps.xdo.servlet.scheduler.ProcessingException: Exception [TOPLINK-4002] (Oracle TopLink - 11g Release 1 (11.1.1.0.0) (Build 080319)): oracle.toplink.exceptions.DatabaseException+
    Internal Exception: java.sql.SQLException: ORA-00904: "SEQ_NAME": invalid identifier
    Error Code: 904
    Call: UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT 50 WHERE SEQ_NAME = 'JOB_ID_SEQ'+
    Query: DataModifyQuery()
    +     at oracle.apps.xdo.servlet.scheduler.toplink.ToplinkDataHandler.insertJob(ToplinkDataHandler.java:830)+
    +     at oracle.apps.xdo.servlet.ui.scheduler.SchedulerServlet.scheduleJob(SchedulerServlet.java:1896)+
    +     at oracle.apps.xdo.servlet.ui.scheduler.SchedulerServlet.doPost(SchedulerServlet.java:293)+
    +     at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)+
    +     at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)+
    +     at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)+
    +     at oracle.apps.xdo.servlet.security.SecurityFilter.doFilter(SecurityFilter.java:94)+
    +     at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)+
    +     at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)+
    +     at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)+
    +     at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)+
    +     at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)+
    +     at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)+
    +     at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)+
    +     at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)+
    +     at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)+
    +     at java.lang.Thread.run(Thread.java:595)+
    +Caused by: Exception [TOPLINK-4002] (Oracle TopLink - 11g Release 1 (11.1.1.0.0) (Build 080319)): oracle.toplink.exceptions.DatabaseException+
    Internal Exception: java.sql.SQLException: ORA-00904: "SEQ_NAME": invalid identifier
    Error Code: 904
    Call: UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT 50 WHERE SEQ_NAME = 'JOB_ID_SEQ'+
    Query: DataModifyQuery()
    +     at oracle.toplink.exceptions.DatabaseException.sqlException(DatabaseException.java:296)+
    +     at oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:724)+
    +     at oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeNoSelect(DatabaseAccessor.java:790)+
    +     at oracle.toplink.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:524)+
    +     at oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:467)+
    +     at oracle.toplink.internal.sessions.AbstractSession.executeCall(AbstractSession.java:795)+
    +     at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:193)+
    +     at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:179)+
    +     at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.executeNoSelectCall(DatasourceCallQueryMechanism.java:222)+
    +     at oracle.toplink.internal.queryframework.DatasourceCallQueryMechanism.executeNoSelect(DatasourceCallQueryMechanism.java:202)+
    +     at oracle.toplink.queryframework.DataModifyQuery.executeDatabaseQuery(DataModifyQuery.java:55)+
    +     at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:671)+
    +     at oracle.toplink.internal.sessions.AbstractSession.internalExecuteQuery(AbstractSession.java:2260)+
    +     at oracle.toplink.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1074)+
    +     at oracle.toplink.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1058)+
    +     at oracle.toplink.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1032)+
    +     at oracle.toplink.sequencing.QuerySequence.update(QuerySequence.java:319)+
    +     at oracle.toplink.sequencing.QuerySequence.updateAndSelectSequence(QuerySequence.java:258)+
    +     at oracle.toplink.sequencing.StandardSequence.getGeneratedVector(StandardSequence.java:62)+
    +     at oracle.toplink.sequencing.DefaultSequence.getGeneratedVector(DefaultSequence.java:144)+
    +     at oracle.toplink.sequencing.Sequence.getGeneratedVector(Sequence.java:256)+
    +     at oracle.toplink.internal.sequencing.SequencingManager$Preallocation_Transaction_NoAccessor_State.getNextValue(SequencingManager.java:444)+
    +     at oracle.toplink.internal.sequencing.SequencingManager.getNextValue(SequencingManager.java:873)+
    +     at oracle.toplink.internal.sequencing.ClientSessionSequencing.getNextValue(ClientSessionSequencing.java:75)+
    +     at oracle.toplink.internal.descriptors.ObjectBuilder.assignSequenceNumber(ObjectBuilder.java:234)+
    +     at oracle.toplink.internal.sessions.UnitOfWorkImpl.assignSequenceNumbers(UnitOfWorkImpl.java:419)+
    +     at oracle.toplink.internal.sessions.UnitOfWorkImpl.calculateChanges(UnitOfWorkImpl.java:497)+
    +     at oracle.toplink.internal.sessions.UnitOfWorkImpl.commitToDatabaseWithChangeSet(UnitOfWorkImpl.java:1407)+
    +     at oracle.toplink.internal.sessions.UnitOfWorkImpl.commitRootUnitOfWork(UnitOfWorkImpl.java:1167)+
    +     at oracle.toplink.internal.sessions.UnitOfWorkImpl.commit(UnitOfWorkImpl.java:939)+
    +     at oracle.apps.xdo.servlet.scheduler.toplink.ToplinkDataHandler.insertJob(ToplinkDataHandler.java:815)+
    +     ... 16 more+
    Caused by: java.sql.SQLException: ORA-00904: "SEQ_NAME": invalid identifier
    +     at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:138)+
    +     at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:316)+
    +     at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:282)+
    +     at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:639)+
    +     at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:113)+
    +     at oracle.jdbc.driver.T4CStatement.execute_for_rows(T4CStatement.java:561)+
    +     at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1161)+
    +     at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1585)+
    +     at oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:713)+
    +     ... 45 more+
    Found a thread related to this but there it was explained that the error was occuring when trying to notify regarding output through email. In our case, issue is occuring just during scheduling itslef.
    Also I haved checked the following schedular tables in my database.
    SQL> select table_name from all_tables where table_name like 'S_NQ%'
    +2 /+
    TABLE_NAME
    S_NQ_ERR_MSG
    S_NQ_INSTANCE
    S_NQ_JOB_PARAM
    S_NQ_JOB
    SQL> select SEQ_NAME.CURRVAL FROM DUAL;
    select SEQ_NAME.CURRVAL FROM DUAL
    *+
    ERROR at line 1:
    ORA-02289: sequence does not exist
    Please help me out in solving this as I have tried almost all possible solutions.
    Thanks,
    Sri Harsha.
    Edited by: user10545574 on Dec 20, 2009 10:24 PM

    Hello,
    In the delivery email configuration server page (under BI Publisher Admin Tab), the username / password to enter is the one defined on the email server itself. It is the user that will be user to send the emails when scedhuling a report.
    It may not be Administrator/ Administrator (not a user defined with OBI admin tool) but the username/password defined on the email server itself.
    Moreover, to properly configure the BI Publisher Scheduler, it is a prerequistes to create bipsched user on Oracle DB and install the schema tables in Oracle DB (by clicking on Install Schema button after defining database connection under Admin / Scheduler Configuration tab)
    From the error your are getting 'SEQ_NAME unknown..., it appears that the tables are not created'.
    Hope this helps and good luck
    Matthieu

  • Invalid identifier results from an sql statement in php

    hello there, i'm trying to access data from an oracle 11g database via oci and php 5.3.8.
    i'm getting the ORA-00904 (invalid identifier) error when executing the following statement:
    $stid = oci_parse($conn, 'select * from table1 where column1 = "XYZ"');
    when i do this:
    $searchstring = "XYZ";
    $stid = oci_parse($conn, 'select * from table1 where column1 = '.$searchstring.'');
    i'm getting this error:
    ORA-00933: SQL command not properly ended
    column1 is varchar2, the entries are either letters and numbers (never only numbers) or empty.
    when i do this:
    $stid = oci_parse($conn, 'select * from table1');
    i'm getting the data and there are entries in column1 with XYZ.
    has anyone an idea, what i do wrong?
    regards j

    The PHP forum for questions like this is at http://www.oracle.com/technetwork/forums/php/index.html
    You really need to be using a bind variable here. Otherwise you will likely suffer from poor DB performance, and also open yourself to SQL Injection security attacks. Try:
    $stid = oci_parse($conn, 'select * from table1 where column1 = :bv');
    oci_bind_by_name($stid, ":bv", $searchstring);Regarding quoting of your example try:
    $searchstring = "XYZ";
    echo  'select * from table1 where column1 = '.$searchstring.'';Then run that SQL in SQL*Plus and watch it fail. What you need is given with:
    echo  'select * from table1 where column1 = \''.$searchstring.'\'';See the bottom of p 126 of The Underground PHP and Oracle Manual
    Note that with the bind variable example you didn't need quotes around :bv.

  • Invalid identifier error in executing a ref cursr

    I am getting ORA00904: "MARKETING": invalid identifier ... and it's driving me crazy!!
    here's my sql code...
    StrTitle varchar2(500);
    TYPE RefCurCusts IS REF CURSOR;
    rec_ref_custs RefCurCusts;
    strCusts varchar2(500);
    StrTitle := 'MARKETING';
    OPEN rec_ref_custs FOR
    'Select distinct b.account_number, b.marketing_rep_name, c.customer_name, a.meter, a.mappole, a.feeder, b.last_or_corp_name, b.house_number, b.street_direction, b.street_name, b.street_suffix, max(odate) over (partition by b.account_number) last_called, n.message_type, c.list_name     
    From srs.current_outage_calls o, tlm.customer_electric b, srs.notification_list n, SRS.NOTIFIABLE_CUSTOMERS_VW c, srs.est_customer_outages a
    Where c.SERVICE_ADDR_NUMBER = b.SERVICE_ADDR_NUMBER And substr(b.meter_number, 2, 6) = a.meter and b.service_point_end_date is null and o.meter(+)=a.meter and n.list_name=c.list_name and c.list_name = '||StrTitle;
                   LOOP
                        FETCH rec_ref_custs INTO strCusts;
                        EXIT WHEN rec_ref_custs%NOTFOUND;
                             StrBodyHTML:= StrBodyHTML || ', ' || strCusts;
                   END LOOP;
    CLOSE rec_ref_custs;     
    please help!
    Thanks

    Fuse_5a wrote:
    I am taking the value of StrTitle (I changed the name of it to strList in the below code) from a different select statement ... therefore, strList will be changing based on the results of the first query.
    this code is for an automailer that will run every minute!!
    here's more of my code to better explain it ...
    Any suggestions?
    OPEN rec_ref_list FOR
    'Select
    distinct c.list_name     
    From
    srs.current_outage_calls o,
    tlm.customer_electric  b,
    srs.notification_list n,
    SRS.NOTIFIABLE_CUSTOMERS_VW c,
    srs.est_customer_outages a
    Where
    c.SERVICE_ADDR_NUMBER = b.SERVICE_ADDR_NUMBER
    And substr(b.meter_number, 2, 6) = a.meter
    and b.service_point_end_date is null
    and o.meter(+)=a.meter
    and n.list_name=c.list_name';
    LOOP
    FETCH rec_ref_list INTO *strList*;
    EXIT WHEN rec_ref_list%NOTFOUND;
         OPEN rec_ref_custs FOR
    'Select
    b.account_number,
    b.marketing_rep_name,
    c.customer_name, a.meter,
    a.mappole, a.feeder,
    b.last_or_corp_name,
    b.house_number,
    b.street_direction,
    b.street_name,
    b.street_suffix,
    max(odate) over (partition by b.account_number) last_called,
    n.message_type,
    c.list_name     
    From
    srs.current_outage_calls o,
    tlm.customer_electric  b,
    srs.notification_list n,
    SRS.NOTIFIABLE_CUSTOMERS_VW c,
    srs.est_customer_outages a
    Where
    c.SERVICE_ADDR_NUMBER = b.SERVICE_ADDR_NUMBER
    And substr(b.meter_number, 2, 6) = a.mete
    and b.service_point_end_date is null
    and o.meter(+)=a.meter
    and n.list_name=c.list_name
    and c.list_name = :1' using *strList*;
           LOOP
               FETCH rec_ref_custs INTO strCusts;
               EXIT WHEN rec_ref_custs%NOTFOUND;
                   StrBodyHTML:= StrBodyHTML || ', ' || strList || ', ' || strCusts;
           END LOOP;
    CLOSE rec_ref_custs;     
    END LOOP;
    CLOSE rec_ref_list;     
    You have a variable, nothing more. You DO NOT need dynamic SQL here, just trust me (then go read about it and learn why ... it will serve your career well to do some reading).
    You don't need 2 cursors here, for lack of not wanting to try to decipher this in it's entirety i took a simple hack and utilized an IN clause.
    for loop_var in
       Select
          b.account_number,
          b.marketing_rep_name,
          c.customer_name, a.meter,
          a.mappole, a.feeder,
          b.last_or_corp_name,
          b.house_number,
           b.street_direction,
          b.street_name,
          b.street_suffix,
          max(odate) over (partition by b.account_number) last_called,
          n.message_type,
          c.list_name     
       From
          srs.current_outage_calls o,
          tlm.customer_electric  b,
          srs.notification_list n,
          SRS.NOTIFIABLE_CUSTOMERS_VW c,
          srs.est_customer_outages a
       Where
        c.SERVICE_ADDR_NUMBER = b.SERVICE_ADDR_NUMBER
       And substr(b.meter_number, 2, 6) = a.mete
       and b.service_point_end_date is null
       and o.meter(+)=a.meter
       and n.list_name=c.list_name
       and c.list_name in
          Select
             c.list_name     
          From
          srs.current_outage_calls o,
          tlm.customer_electric  b,
          srs.notification_list n,
          SRS.NOTIFIABLE_CUSTOMERS_VW c,
          srs.est_customer_outages a
          Where
          c.SERVICE_ADDR_NUMBER = b.SERVICE_ADDR_NUMBER
          And substr(b.meter_number, 2, 6) = a.meter
          and b.service_point_end_date is null
          and o.meter(+)=a.meter
          and n.list_name=c.list_name
    LOOP
       StrBodyHTML:= StrBodyHTML || ', ' || loop_var.<pick_a_column_from_select_list_above>;
    END LOOP;No ref cursors, less complex and 1 single SQL query ... much cleaner and efficient.

  • Error ORA-00904  invalid identifier

    There are so many different employee rates colums in the employee table .
    e.g)
    emp_rate_1 column has all different salaries(10,20,30)
    emp_rate_2 column has all different salaries(20,30,40)
    If I do pick up one rate , it works fine as below
    select
         SUM(emp_rate_1) as emp_rate_1
                   from employee_t
    result $60
    but i have to summarize all different rate amount using loop. before looping method,
    I tried as simple like below
    declare
    V_emp_rate_1_ID number;
    begin
    V_emp_rate_1_ID :=1;
    select
         SUM(emp_rate_||trim(V_emp_rate_1_ID)) as emp_rate_1
                   from employee_t ;
    end;
    I have an error message;
    PL/SQL: ORA-00904: "emp_rate_": invalid identifier
    ORA-06550: line 5, column 1:
    PL/SQL: SQL Statement ignored
    06550. 00000 - "line %s, column %s:\n%s"
    *Cause:    Usually a PL/SQL compilation error.
    *Action:
    how can I put dynamic column into Sum() in the query?
    or would you give me your advice to solve the solution.

    Not clear whether you are trying to get two sums (one for each column) or one sum that totals both columns)
    select
    SUM(emp_rate_1) as emp_rate_1
    from employee_t
    result $60But you can do all three with one query
    select
    SUM(emp_rate_1) as emp_rate_1, sum(emp_rate_2) as emp_rate_2, sum (emp_rate_1 + emp_rate_2) as sum_both
    from employee_t

  • Dynamic SQL Issue ORA-00904:invalid identifier error

    Here is my SP
    create or replace procedure srini_ref_cursor_test(p_county_code IN VARCHAR2,
    p_ref_cur out PK_FR_TYPES.cursor_type) is
    query_str varchar2(5000);
    begin
    query_str := 'SELECT * FROM dw_county where county_name = :P ';
    open p_ref_cur for query_str USING p_county_code;
    insert into srini_query_str_test values (query_str);
    commit;
    end srini_ref_cursor_test;
    When I pass the p_county_code = Adams working find.
    create or replace procedure srini_ref_cursor_test(p_county_code IN VARCHAR2,
    p_ref_cur out PK_FR_TYPES.cursor_type) is
    query_str varchar2(5000);
    begin
    query_str := 'SELECT * FROM dw_county where county_name in ('||p_county_code||')';
    open p_ref_cur for query_str;
    insert into srini_query_str_test values (query_str);
    commit;
    end srini_ref_cursor_test;
    When I pass the p_county_code = Adams for above SP I got the following error
    ORA-00904: "ADAMS": invalid identifier error
    With out Bind variables how Can I pass the Char type values in Dynamic SQL ?
    I would like to pass multipule values to p_county_code like 'Adams','Ashley' etc
    How Can I do this ?
    Thank for great help.
    Srini

    How do I write the Dynamic SQL for
    SELECT * FROM DW_COUNTY WHERE COUNTY_NAME LIKE 'Ad%'
    The usual way...
    hr@ORA10G>
    hr@ORA10G> var str varchar2(1000);
    hr@ORA10G> var cr refcursor;
    hr@ORA10G>
    hr@ORA10G> exec :str := 'select * from employees where first_name like ''A%''';
    PL/SQL procedure successfully completed.
    hr@ORA10G> -- note the escape character for each single quote
    hr@ORA10G> print str
    STR
    select * from employees where first_name like 'A%'
    hr@ORA10G>
    hr@ORA10G> exec open :cr for :str;
    PL/SQL procedure successfully completed.
    hr@ORA10G> print cr
    EMPLOYEE_ID FIRST_NAME           LAST_NAME                 EMAIL                     PHONE_NUMBER      HIRE_DATE JOB_ID    SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID
            103 Alexander            Hunold                    AHUNOLD                   590.423.4567         03-JAN-90 IT_PROG          9000                       102            60
            115 Alexander            Khoo                      AKHOO                     515.127.4562         18-MAY-95 PU_CLERK         3100                       114            30
            121 Adam                 Fripp                     AFRIPP                    650.123.2234         10-APR-97 ST_MAN           8200                       100            50
            147 Alberto              Errazuriz                 AERRAZUR                  011.44.1344.429278   10-MAR-97 SA_MAN          12000             .3        100            80
            158 Allan                McEwen                    AMCEWEN                   011.44.1345.829268   01-AUG-96 SA_REP           9000            .35        146            80
            167 Amit                 Banda                     ABANDA                    011.44.1346.729268   21-APR-00 SA_REP           6200             .1        147            80
            175 Alyssa               Hutton                    AHUTTON                   011.44.1644.429266   19-MAR-97 SA_REP           8800            .25        149            80
            185 Alexis               Bull                      ABULL                     650.509.2876         20-FEB-97 SH_CLERK         4100                       121            50
            187 Anthony              Cabrio                    ACABRIO                   650.509.4876         07-FEB-99 SH_CLERK         3000                       121            50
            196 Alana                Walsh                     AWALSH                    650.507.9811         24-APR-98 SH_CLERK         3100                       124            50
    10 rows selected.
    hr@ORA10G>
    hr@ORA10G>pratz

  • Multi-row sub query returns  ORA-00904 :invalid identifier error

    I am creating a report from two tables that I am not joining. I want a single line for every row in table1 that meets a date range. Table2 can contain none or many rows for each recored in table1. I want to get up to two fields from table2.
    I was using a case statement to check if there was data and then an in-line query or subquery. Once again, the idea is to have a single line on the report for each table1 record.
    I get this error with the code below. It seems the nested multi-row subquery can not see the a.cr_mas_cr_no identifier.
    ORA-00904: "a"."cr_mas_cr_no": invalid identifier
    Any help is greatly appreciated,
    Sam
    select
    a.cr_mas_cr_no "CRNO", a.cr_mas_type "TYPE", a.cr_mas_status "CR Status",
    a.cr_mas_date_logged "Logged date", a.CR_REL_REQ_APP_DATE "RTP approved",a.CR_REL_REQ_RTP_DATE "RTP Date",
    a.cr_accepted_date "Complete", a.cr_mas_submitted_by "Requester",
    select doc_user FROM crrm_cr_documents WHERE doc_cr_number =a.cr_mas_cr_no and rownum = 1 and DOC_TYPE = 'BD' ) "Bus Design",
    (select doc_user FROM crrm_cr_documents WHERE doc_cr_number = a.cr_mas_cr_no and rownum = 1 and DOC_TYPE = 'TD' ) "Tech Design",
    (select doc_user FROM crrm_cr_documents WHERE doc_cr_number = a.cr_mas_cr_no and rownum = 1 and DOC_TYPE = 'TE' ) "User acceptance test",
    case
    when (select count(appr_user) from crrm_cr_approvals where appr_cr_no = a.cr_mas_cr_no and appr_type = 'RTP') > 0
    then (select appr_user from (select * from crrm_cr_approvals where appr_cr_no = a.cr_mas_cr_no and appr_type = 'RTP') where rownum = 1)
    end
    "RTP #1",
    case
    when (select count(appr_user) from crrm_cr_approvals where appr_cr_no = a.cr_mas_cr_no and appr_type = 'RTP') > 1
    then (select appr_user from (select * from crrm_cr_approvals where appr_cr_no = a.cr_mas_cr_no and appr_type = 'RTP') where rownum = 2)
    end
    "RTP #2",
    a.CR_REL_REQ_RTP_BY "Released by",
    a.CR_ACCEPTED_BY "Post RTP User Acceptance",
    a.cr_mas_title "Title", a.cr_mas_id "ID"
    from
    crrm_crmaster a
    where
    (a.CR_REL_REQ_RTP_DATE >= :P1109_BEGDATE and (a.CR_REL_REQ_RTP_DATE <= :P1109_ENDDATE) and
    (a.cr_mas_status = 'Complete' or (a.cr_mas_status = 'Release Approved'and a.CR_REL_REQ_APP_DATE < :P1109_ENDDATE))
    Message was edited by:
    slavanaway

    Iceman,
    Thanks for the reply I will try your suggestion.
    I will try and explain why I think two subqueries (an in-line query with a subquery?) are required. I will use the creation of the column RTP #1 as the example as the RTP #2 column is only different in the rownum selected.
    Looking only at the lines that fail, here is my analysis. (If I rem out the two case lines the query runs, I just don't get two columns of data I need.) I will only examine the first case as the second is changed to extract the second approval via the rownum = 2 criteria. The first statement checks there is at least one RTP approval stored for the request and then gets the user who approved the request if the test is true.
    case when
    (select count(appr_user) from crrm_cr_approvals where appr_cr_no =a.cr_mas_cr_no and appr_type = 'RTP') > 0
    then
    The above part works fine and the correct count of approvals is returned.
    (select appr_user from (select * from crrm_cr_approvals where appr_cr_no=a.cr_mas_cr_no and appr_type = 'RTP') where rownum = 1)
    end
    "RTP #1",
    I moved the parenthesis to the correct location. There can be multiple approvals for a given parent record. Some parent records need one, some need two approvals. If I replace
    (select appr_user from (select * from crrm_cr_approvals where appr_cr_no =a.cr_mas_cr_no and appr_type = 'RTP') where rownum = 1)
    with
    (select appr_user from approvals where appr_cr_no =a.cr_mas_cr_no and appr_type = 'RTP' and rownum = 1)
    The correct result is returned because it returns exactly one row as rownum=1 limits the query. When rownum = 2 then the query returns null as the rownum never gets to two as the rownum column is built via the set created by the second subquery.
    The subquery builds a set of approvals for a specific "cr_no" and appr_type of "RTP". the outer query then looks at the rownum of the second query
    Here is where I got the rownum information from;
    http://www.oracle.com/technology/oramag/oracle/06-sep/o56asktom.html
    So here is what I think is happening;
    1. Main query From and Where are processed. This should provide the "set" for the query
    2.The from subqueries for RTP #1 and RTP #2 should be able to access the a.cr_mas_cr_no field and build a set from the approvals table.
    3.The RTP #1/2 subquery (inline maybe a better description?) would then get the correct row from the from subquery.
    The error "invalid identifier" refers to the a.cr_mas_cr_no field. I assume it means it can not resolve the table alias inside the subquery.
    So maybe your grouping would help, I will try.
    Sam

  • ORA-00904 invalid identifier error

    Here are the steps to reproduce this. My DB version is 9i R2.
    1) create table xmlsun1 of xmltype;
    2) create table xmlsun2 as select * from xmlsun1;
    Two Tables of XML Type created successfully
    3) insert into xmlsun1 values(xmltype('<employees><employee id="35"><FirstName>Tom</FirstName><LastName>Kyte</LastName></employee></employees>'));
    4) insert into xmlsun2 values(xmltype('<employees><employee id="35"><FirstName>Tom</FirstName><LastName>Kyte</LastName></employee></employees>'));
    Now when i query, i can see one record in each tables.
    The problem is only when updation.
    5) update xmlsun1 x
    set value(x) = updatexml(value(x),'/employees/employee/@id','37')
    where existsnode(value(x),'/employees/employee[FirstName = "Tom"]') = 1;
    1 row updated
    6) update xmlsun2 x
    set value(x) = updatexml(value(x),'/employees/employee/@id','37')
    where existsnode(value(x),'/employees/employee[FirstName = "Tom"]') = 1;
    This updation fails with the error : ORA-01775: looping chain of synonyms
    I tried to change alias of xmlsun2 to y
    update xmlsun2 y
    set value(y) = updatexml(value(y),'/employees/employee/@id','37')
    where existsnode(value(y),'/employees/employee[FirstName = "Tom"]') = 1;
    I get an error saying that Y is an invalid identifier. Now, how can i update the table xmlsun2? I can't use the alias x nor any other alias.
    Thanks,
    Sundar

    I've filed bug 5560960 for this behavoir, which is still not what you are describing.. Do you have SYNONYMS defined somewhere in your example ?
    $ sqlplus scott/tiger @testcase3
    SQL*Plus: Release 9.2.0.6.0 - Production on Fri Sep 22 11:59:46 2006
    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.6.0 - Production
    SQL> drop table xmlsun1
    2 /
    Table dropped.
    SQL> create table xmlsun1 of xmltype
    2 /
    Table created.
    SQL> drop table xmlsun2
    2 /
    Table dropped.
    SQL> create table xmlsun2 as select * from xmlsun1
    2 /
    Table created.
    SQL> insert into xmlsun1 values( xmltype ('<employees><employee id="35"><FirstName>Tom</FirstName><LastName>Kyte</LastName></employee></employees>') )
    2 /
    1 row created.
    SQL> insert into xmlsun2 values( xmltype ('<employees><employee id="35"><FirstName>Tom</FirstName><LastName>Kyte</LastName></employee></employees>') )
    2 /
    1 row created.
    SQL> update xmlsun1 x
    2 set value(x) = updatexml(value(x),'/employees/employee/@id','37')
    3 where existsnode(value(x),'/employees/employee[FirstName = "Tom"]') = 1
    4 /
    1 row updated.
    SQL> update xmlsun2 x
    2 set value(x) = updatexml(value(x),'/employees/employee/@id','37')
    3 where existsnode(value(x),'/employees/employee[FirstName = "Tom"]') = 1
    4 /
    where existsnode(value(x),'/employees/employee[FirstName = "Tom"]') = 1
    ERROR at line 3:
    ORA-00904: "X": invalid identifier
    SQL> update xmlsun2 y
    2 set value(y) = updatexml(value(y),'/employees/employee/@id','37')
    3 where existsnode(value(y),'/employees/employee[FirstName = "Tom"]') = 1
    4 /
    where existsnode(value(y),'/employees/employee[FirstName = "Tom"]') = 1
    ERROR at line 3:
    ORA-00904: "Y": invalid identifier
    SQL>

Maybe you are looking for

  • CHKDSK fails on fresh install of Windows 7 x64 on mid-2009 MBP with SSD

    There was an earlier post about this that has been archived prematurely that I will reproduce below. The main issue is a flaw in the Windows 7 x64 CHKDSK of the SSD drive in the mid-2009 MBP= 5,2. With fresh OSX installs, bootcamp 3.1, Windows 7 x64

  • Sync BPM queue

    Hi, I have a sync BPM scenario with post a PO using webservices and then respond back to soap client and also a text file to ther receiver server. My problem is there was only a queue for the BPM but there will be many user will use this services to

  • Sparc T5-2 servers

    Hi All, How good is the new sun sparc T5-2  in handling single threaded jobs in Oracle database. Any documents or Links will be of great help. Thanks.

  • How to show the externalObjectId in the UWL?

    Hi, how can i show the externalObjectId as a column for support reasons ? Just adding externalObjectId is not showing  an additional column.... Is there a way using the <CustomAttributes>? I know that i can show it using the UWL Support Information,

  • ITunes 8 Genius crashing iTunes

    So I couldn't find a thread for this. I downloaded the update to iTunes 8 but everytime I try to "turn on" the Genius sidebar it crashes while sending the information to Apple. I get the error message "The iTunes application has unexpectedly quit....