Help: SQL query when parsed returns Invalid Identifier error

Hi The expression posted below is the actual SQL Expression which is required in my report:
((select name from (
select loc_id,name,row_number()over(  order by r)  rn from (
SELECT 0, loc_id, Misc1_txt  NAME,'A' STATUS ,rownum r
                    FROM dvxloc
                   WHERE loc_id = "XXXLOC"."LOC_ID"
                   union
SELECT     parent_loc_id, loc_id, (SELECT a.Misc1_txt
                                                     FROM dvxloc a
                                                    WHERE a.loc_id =b.loc_id) NAME,'B' ,ROWNUM
                        FROM dvxlocpath b
                  START WITH b.loc_id = "XXXLOC"."LOC_ID"
                  CONNECT BY PRIOR  parent_loc_id=loc_id
)                where name is NOT NULL        order by STATUS, R
) where rn = 1))
It gives an error while parsing: "XXXLOC"."LOC_ID" invalid identifier
LOC_ID is of numeric data type in the database. and when I run thi query in SQL editor after replacing "XXXLOC"."LOC_ID" with a numeric value say 456 . The query can be put as
((select name from (
select loc_id,name,row_number()over(  order by r)  rn from (
SELECT 0, loc_id, Misc1_txt  NAME,'A' STATUS ,rownum r
                    FROM dvxloc
                   WHERE loc_id = 456                   union
SELECT     parent_loc_id, loc_id, (SELECT a.Misc1_txt
                                                     FROM dvxloc a
                                                    WHERE a.loc_id =b.loc_id) NAME,'B' ,ROWNUM
                        FROM dvxlocpath b
                  START WITH b.loc_id = 456                  CONNECT BY PRIOR  parent_loc_id=loc_id
)                where name is NOT NULL        order by STATUS, R
) where rn = 1))
The above query runs flawlessly in a SQL editor. and also this is parsed by the crystal sql expression editer
I'm totally messed up of looking for altenatives. I have to deliver a report to the client and stuck on this part only.
The below query parses perfectly in crystal:
(select locname
from dvxloc where loc_id in(select loc3 from dvxlocpath
where loc_id = "XXXLOC"."LOC_ID"))
Edited by: vipulbhatia29 on May 8, 2009 11:06 AM
Edited by: vipulbhatia29 on May 8, 2009 11:14 AM

You said the above works in SQL Editor but does your original work?
((select name from (
select loc_id,name,row_number()over( order by r) rn from (
SELECT 0, loc_id, Misc1_txt NAME,'A' STATUS ,rownum r
FROM dvxloc
WHERE loc_id = "XXXLOC"."LOC_ID"
union
SELECT parent_loc_id, loc_id, (SELECT a.Misc1_txt
FROM dvxloc a
WHERE a.loc_id =b.loc_id) NAME,'B' ,ROWNUM
FROM dvxlocpath b
START WITH b.loc_id = "XXXLOC"."LOC_ID"
CONNECT BY PRIOR parent_loc_id=loc_id
) where name is NOT NULL order by STATUS, R
) where rn = 1))
Crystal does nothing to the SQL in the command editor, what you type in is what we pass.
What database are you connecting to? And if it has a tracing tool what SQL are you seeing from Crystal when you try to run the report?

Similar Messages

  • 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 error in SEQUEL statement

    I'm having trouble with this SELECT statement in a report with search items. The search item in Question is the string "Email." Any activity record that has "Email" in the activity_type field is to be selected. The line of code is:
    select user_name,total from (select user_name,count(*) total from eba_ver2_cust_activity where activity_type = Email group by user_name )
    order by 2 desc,2 desc
    There are some substitutions in here. The value "Email" is from :P23_ACTIVITY_TYPE on the page.
    The error I get is:
    failed to parse SQL query:
    ORA-00904: "EMAIL": invalid identifier
    The problem is that the String constant is being interpreted as an identifier name. Some sbustitutions are made to general the SELECT statement that fails. The relevant portion of the code generating the erroneous SELECT is:
    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;
    Either way, the contents of :P23_ACTIVITY_TYPE are treated as an identifier instead of a string. Please help.
    Steve "the n00b" in Raleigh NC

    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

  • SQL query with parameter returns empty result set, please help !!!

    Hi there,
    When I use the following query :
    <sql:query var="beroepsthemas" >
    select *
    from beroepsthemas
    where beroepsthemaid = ?
    <sql:param value="12"/>
    </sql:query>
    When I want to browse the result set with :
    <c:forEach items="${beroepsthemas.rows}" var="rij">
    it shows no records. But it must return at least one.
    All my jsp pages with sql queries and parameters have the same problem.
    This is all on my test environment. I'm using Ubuntu 5.10, Netbeans5.0, JDK 1.5_06, application runs in Bundeled Tomcat 5.5.9, MySQL 4.1.12, mysql-connector3.1.6
    When the same code is run on the live environment, it works just fine.
    The difference is :
    Mysql 4.1.10a, tomcat5.5.9, mysql-connector3.1.6
    What can there be wrong !!

    When the same code is run on the live environment, it
    works just fine.
    The difference is :
    Mysql 4.1.10a, tomcat5.5.9, mysql-connector3.1.6
    I didn't catch this. I think you may need to update the database driver.

  • 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

  • Invalide identifier error, when use subselect

    Hi all,
    I got "ORA-0094: sp.spriden_pidm invalid identifier "error when runing the following query.
    select (select t.name from
    (select rownum row_number, s.spriden_last_name name
    from spriden s
    where s.spriden_pidm = sp.spriden_pidm) t
    where t.row_number = 1) last_name
    from spriden sp
    where sp.spriden_pidm = 70105;
    Any one has an idea why this is happening?
    Thanks

    Unless I am missing something here, this looks like a straight pivot query to me.
    SQL> with my_test AS (SELECT 1 id, 'June' contact_name FROM dual UNION ALL
      2                   SELECT 1, 'Email' FROM dual UNION ALL
      3                   SELECT 1, 'Mark' FROM dual UNION ALL
      4                   SELECT 2, 'Tom' FROM dual),
      5       my_test_2 AS (SELECT 1 id, trunc(sysdate) act_date FROM dual UNION ALL
      6                     SELECT 1, trunc(sysdate-1) FROM dual UNION ALL
      7                     SELECT 2, trunc(sysdate-1) FROM dual)
      8  SELECT id, act_date,
      9         MAX(DECODE(rn, 1, contact_name)) nc1,
    10         MAX(DECODE(rn, 2, contact_name)) nc2,
    11         MAX(DECODE(rn, 3, contact_name)) nc3
    12  FROM (SELECT m.id, contact_name, act_date,
    13               ROW_NUMBER() OVER (PARTITION BY m.id
    14                                  ORDER BY contact_name) rn
    15        FROM my_test m, my_test_2 m2
    16        WHERE m.id = m2.id and
    17              m2.act_date = trunc(sysdate-1))
    18  GROUP BY id, act_date;
            ID ACT_DATE    NC1   NC2   NC3
             1 11-Sep-2008 Email June  Mark
             2 11-Sep-2008 TomAssuming that you have a known maximum number of possible values in my_test for a given id this should work. You may need to use something other than the contact_name in the order by in the row_number function if you require the values in specific columns, but given your sample data, I have no idea what that might be.
    John

  • OTL I am trying to wright a SQL query that will return the date the timesheet was submitted and date/time it was approved, can anyone guide me on this?

    Hi
    I am trying to wright a SQL query that will return the date the timesheet was submitted and date/time it was approved, can anyone guide me on this?
    I basically need person name who submitted, date - time it was submitted for approval, then the person who approved it and the date - time that it was approved
    Thanks
    Ruby

    Ruby,
    you can start with HXC_TIMECARD_SUMMARY table for submitter detail. But for approver details, i think you need WF tables to get the data for item type HXCEMP.

  • IKM MTI , invalid identifier error

    Hi,
    I am using employees table as my source and inserting data into employees_1,employees_2 and employees_3 target tables using IKM Multi Table insert.
    I get an invalid identifier error on insert new rows step of the last interface:-
    ODI-1228: Task INT_EMP3 (Integration) fails on the target ORACLE connection TARGET.
    Caused By: java.sql.SQLSyntaxErrorException: ORA-00904: "C11_DEPARTMENT_ID": invalid identifier
    Usually this error occurs when there is a type mismatch. I have checked the data type but there is no mismatch.
    The code generated is :-
    insert all
    when 1=1 then
    into TARGET.EMPLOYEES_1
    (EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB_ID, SALARY, COMMISSION_PCT, MANAGER_ID, DEPARTMENT_ID)
    values
    (C1_EMPLOYEE_ID, C2_FIRST_NAME, C3_LAST_NAME, C4_EMAIL, C5_PHONE_NUMBER, C6_HIRE_DATE, C7_JOB_ID, C8_SALARY, C9_COMMISSION_PCT, C10_MANAGER_ID, C11_DEPARTMENT_ID)
    when 1=1 then
    into TARGET.EMPLOYEES_2
    (EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB_ID, SALARY, COMMISSION_PCT, MANAGER_ID, DEPARTMENT_ID)
    values
    (C1_EMPLOYEE_ID, C2_FIRST_NAME, C3_LAST_NAME, C4_EMAIL, C5_PHONE_NUMBER, C6_HIRE_DATE, C7_JOB_ID, C8_SALARY, C9_COMMISSION_PCT, C10_MANAGER_ID, C11_DEPARTMENT_ID)
    when 1=1 then
    into TARGET.EMPLOYEES_3
    (EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB_ID, SALARY, COMMISSION_PCT, MANAGER_ID, DEPARTMENT_ID)
    values
    (C1_EMPLOYEE_ID, C2_FIRST_NAME, C3_LAST_NAME, C4_EMAIL, C5_PHONE_NUMBER, C6_HIRE_DATE, C7_JOB_ID, C8_SALARY, C9_COMMISSION_PCT, C10_MANAGER_ID, C11_DEPARTMENT_ID)
    select     
         C1_EMPLOYEE_ID EMPLOYEE_ID,
         C2_FIRST_NAME FIRST_NAME,
         C3_LAST_NAME LAST_NAME,
         C4_EMAIL EMAIL,
         C5_PHONE_NUMBER PHONE_NUMBER,
         C6_HIRE_DATE HIRE_DATE,
         C7_JOB_ID JOB_ID,
         C8_SALARY SALARY,
         C9_COMMISSION_PCT COMMISSION_PCT,
         C10_MANAGER_ID MANAGER_ID,
         C11_DEPARTMENT_ID DEPARTMENT_ID
    from     ODI_WORK_PRERNA.C$_0EMPLOYEES_1
    where     (1=1)
    When i run this code at the back end after removing the column alias from the select statement, the query works fine. Otherwise it throws the same error at the backend as well.
    Please let me know how to resolve this issue.
    Thanks,
    Prerna
    P.S. For now i modified the km to generate a query without column alias and the interface is working fine. But i want to know why am i getting this error with the column alias.

    If you see the insert statement the values you are defining are C1_column_name:
    into TARGET.EMPLOYEES_1
    (EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB_ID, SALARY, COMMISSION_PCT, MANAGER_ID, DEPARTMENT_ID)
    values
    *(C1_EMPLOYEE_ID, C2_FIRST_NAME, C3_LAST_NAME, C4_EMAIL, C5_PHONE_NUMBER, C6_HIRE_DATE, C7_JOB_ID, C8_SALARY, C9_COMMISSION_PCT, C10_MANAGER_ID, C11_DEPARTMENT_ID)*
    But when you are selecting data the alias names are different :
    select     
    C1_EMPLOYEE_ID EMPLOYEE_ID,
    C2_FIRST_NAME FIRST_NAME,
    C3_LAST_NAME LAST_NAME,
    C4_EMAIL EMAIL,
    C5_PHONE_NUMBER PHONE_NUMBER,
    C6_HIRE_DATE HIRE_DATE,
    C7_JOB_ID JOB_ID,
    C8_SALARY SALARY,
    C9_COMMISSION_PCT COMMISSION_PCT,
    C10_MANAGER_ID MANAGER_ID,
    C11_DEPARTMENT_ID DEPARTMENT_ID
    from     ODI_WORK_PRERNA.C$_0EMPLOYEES_1
    where     (1=1)
    It is a SQL problem. There is another example you can check i.e.
    Select Employee_id from ( select employee_id c1_employee_id from employees);
    When Employee_ID comes to the outer query its name is changed to c1_employee_id , so this sql will give you same error as invalid identifier.
    Change the IKM again and provide same names or even remove the alias.
    Hope it helps

  • Invalid identified error in procedure

    hi
    I have a package that has a declare variable ,vfilename. I set the value of the variable vfilename to a file name for eg 'abc.txt' when the package scenario is callled. Now this file is the source for an interface that loads from this file to a target table. The interface has source datastore resource defined as a variable.
    After running this interface a procedure is called that will update a metadata table where the record has file_name col value=vfilename.
    to do this in the ODI procedure I am calling a plsql procedure as below
    Begin
    update_load_status(#vfilename)
    end;
    When this procedure runs I get an error as below
    904 : 42000 : java.sql.SQLException: ORA-00904: "abc"."TXT": invalid identifier
    If I call the procedure by hard coding the value i.e update_load_status('abc.txt'). It works fine.
    I have tried concat etc but still the value is not getting passed correctly and I am getting the invalid identified error. Is there a way to get around this?

    If you are saying this code -update_load_status('abc.txt'). work
    then call the variable this way
    Begin
    update_load_status('#vfilename');
    end;

  • Invalid Identifier error in Discoverer Workbook

    Hi All,
    I have created a workbook in Discoverer desktop containing 2 worksheets(2 Reports)in it.
    After creating the first report I ran it and able to see the out put.
    Then created the 2nd report and successfully gave the output.
    After that if i switch to the first report(1st sheet) in the workbook it gives "ORA:09004 Invalid Identifier" Error and I am not able to run the report.
    Then i closed the workbook and tried reopening. But that time it gives the following error,
    "Unable to find the error text for this exception"
    "Attempt to open workbook failed"
    I have saved the workbook in the database.
    Can anyone tell me what is the cause for this error? What is the solution for this errors? Whether the workbook will be lost permanently?
    Thanks
    Alaka

    Hi,
    What is "m_Xml" ?
    Give us something we can use to reproduce the issue.
    The query you gave cannot be run.
    (btw, tags must be in lowercase)                                                                                                                                                                                                                                                                                                                           

  • Error parsing feed: invalid XML: Error Line 1: Content isnot allowed in pr

    Hi I am trying t post a new podcast via iTunes but get an error
    Error parsing feed: invalid XML: Error Line 1: Content is not allowed in prolog
    this is my URL
    http://www.rolandjyoung.pwp.blueyonder.co.uk/podcast/dripodepisode1.mp3
    any ideas?

    That's not a feed, it's a web page. Your feed is at
    http://www.blogtalkradio.com/bluespot.rss
    and this can be subscribed to successfully in iTunes.

  • Why do I get a "DATE1 : ORA-00904 Invalid identifier" error ?

    Hi,
    Despite my efforts, I can't see why I get a "DATE1 : ORA-00904 Invalid identifier' error whith this request.
    {code}With S1 as (
    SELECT TRUNC(DATE1, 'MM'),
    ROUND(SUM(VALEUR), 2)
    FROM EVV_E036
    GROUP BY TRUNC(DATE1, 'MM')
    ORDER BY TRUNC(DATE1, 'MM'))
    SELECT n,
    NVL(ROUND(SUM(Valeur),2), 0)
    FROM (select add_months(to_date('01/01/2006', 'dd/mm/yyyy'), level - 1) n FROM dual connect by level <= 12) months
    LEFT JOIN S1
    ON months.n = TRUNC(DATE1, 'MM')
    GROUP BY n
    ORDER BY n{code}
    The line in error is this one : {code}ON months.n = TRUNC(DATE1, 'MM'){code}
    Any idea much appreciated !
    Regards,
    Christian

    hi,
    I have done this and get no more errors. Now I see that the values I get are equal to 0. Or, I do get values different from 0 in my table ! I can't see why the left join gives 0. I have to dig this and come back tomorrow.
    With S1 as (
    SELECT TRUNC(DATE1, 'MM') Date1,
           ROUND(SUM(VALEUR), 2) Debit
    FROM   EVV_E036
    WHERE  CLEF_VAR = (SELECT CLEF_VAR FROM SITE_ECHELLE WHERE SITE = 'E036')
    AND    DATE1 BETWEEN TO_DATE ('01/01/2007000000', 'DD/MM/YYYYHH24MISS') AND TO_DATE ('31/12/2007235959', 'DD/MM/YYYYHH24MISS')
    GROUP  BY TRUNC(DATE1, 'MM')
    ORDER  BY TRUNC(DATE1, 'MM'))
    SELECT n,
           NVL(ROUND(SUM(Debit),2), 0)
    FROM   (select add_months(to_date('01/01/2006', 'dd/mm/yyyy'), level - 1) n FROM dual connect by level <= 12) months
    LEFT JOIN S1
         ON months.n = date1
    GROUP BY n
    ORDER BY n

  • 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

  • SQL Query (PL/SQL function body returning SQL query) when using to_char

    we are trying to build a report page of Type SQL Query (PL/SQL function body returning SQL query).
    our query is so simple, we need to extract the month from the recording_date column.
    declare
    l_query varchar2(1000);
    begin
    l_query:='select to_char(recording_date,'MM')from re_productive';
    return l_query;
    end;
    but we are having the following problem for this query
    Function returning SQL query: Query cannot be parsed within the Builder. If you believe your query is syntactically correct, check the generic columns checkbox below the region source to proceed without parsing.
    (ORA-06550: line 4, column 42: PLS-00103: Encountered the symbol "MON" when expecting one of the following: . ( * @ % & = - + ; < / > at in is mod remainder not rem <> or != or ~= >= <= <> and or like between || multiset member SUBMULTISET_ The symbol ". was inserted before "MON" to continue.)
    Notes:
    1-the query is correct and it was tested under Toad and SQL Plus.
    2- we tried Use Generic Column Names (parse query at runtime only) option but we get the same problem.
    any quick help please.

    Hi
    You haven't escaped your quotes in the string. Try this...
    DECLARE
    l_query VARCHAR2(32767);
    BEGIN
    l_query:= 'select to_char(recording_date,''MM'') from re_productive';
    RETURN l_query;
    END;Cheers
    Ben

  • Java.sql.SQLSyntaxErrorException: ORA-00904: "GROUPID": invalid identifier

    I have this Oracle table:
    CREATE TABLE USERGROUPS(
      GROUPID INTEGER NOT NULL,
      GROUPNAME VARCHAR2(40 ),
      GROUPSTATUS VARCHAR2(30 ),
      DATEGROUPADDED DATE,
      DATEGROUPLOCKED DATE,
      GROUPEXPIREDATE DATE,
      DESCRIPTION CLOB
    /I tried to run this SQL query:
    SELECT c.*
    FROM
      (SELECT b.*,
        rownum rn
      FROM
        (SELECT a.* FROM USERGROUPS a ORDER BY GROUPID ASC
        ) b
      WHERE rownum <= 5
      ) c
    WHERE rn > 10I get this error message in SQL developer when I run it:
    ORA-00904: "GROUPID": invalid identifier
    00904. 00000 - "%s: invalid identifier"
    *Cause:   
    *Action:
    Error at Line: 5 Column: 25
    I also tested this SQL query:
    SELECT GROUPID FROM USERGROUPS I get this error:
    ORA-00904: "GROUPID": invalid identifier
    00904. 00000 - "%s: invalid identifier"
    *Cause:   
    *Action:
    Error at Line: 1 Column: 7
    Can you help me to fix the problem?

    Are you sure the create table statement executed successfully (with no error)?
    Perhaps you use an older version of the table where the column groupid did not exists.
    You can check the columns of your table with:
    select * from all_tab_columns
    where table_name='USERGROUPS'
      and owner='<schema-name>'
    order by column_id;Another reason could be, that exist two tables with the same name.
    You could check that with
    select *
    from all_tables
    where table_name ='USERGROUPS';hm

Maybe you are looking for

  • HELP! Have new PC, how can i get iphone's music, apps ect onto new itunes??

    Hi there, Unfortunatly my laptop was stolen a week before christmas. My Iphone was synced to the laptop and I also used the Itunes' Store to purchase my music from the computer aswell as buying some from the phone itself. I now have a new laptop and

  • IPod Shuffle (2nd Generation) Windows 2003 Server

    Hey All, Having a hard time getting my iPod to sync. Getting this error. "The iPod cannot be synced. An unknown error occured (-48). I have been researching these forums on a solution and its directing me to update the iTunes BUT, the latest version

  • Error 13014 after upgrade - can't start up itunes

    Hi, since I upgraded itunes to the newest version, it won't even start up anymore. After trying to load the library (which is external), it shows unknown error 13014. Restarting the computer didn't help. Does anyone have an answer that doesn't requir

  • Fastest way to trabsfer files

    I have many gb's of data on an ibook. I need to transfer these to a windows laptop. What is the best way? 1. Transferring across wireless gets nowhere near the 54mbps it's supposed to. Transfering 10gb's would take hours. 2. I formatted an external 2

  • Germany - sending mail problem

    as many before am not able to send mail from my private email account - neither via edge nor when using wifi. However it works from my .Mac account. It is an SMTP issue. My ISP tells me that the server drops after ehlo. In order to gather some more i