Error using Rank function in Answers

Hi All,
Am trying to generate a report in Answers which lists Top Accounts with Revenue.
I Ranked the Revenue field and it is returning me correct values. ( Rank(account.revenue) )
But, when I try to filter on this field and restrict the rows which shows only top 10 Accounts, it is returning the following error:
State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 17001] Oracle Error code: 1792, message: ORA-01792: maximum number of columns in a table or view is 1000 at OCI call OCIStmtExecute. [nQSError: 17010] SQL statement preparation failed. (HY000)
Can any one help me on this.
Thanks in Advance,
Imtiaz.

Hi Joe,
This is the Physical query generated when I use Rank function and the report is fine.
select distinct D1.c1 as c1,
D1.c2 as c2,
D1.c3 as c3,
D1.c4 as c4,
D1.c5 as c5,
D1.c6 as c6,
D1.c7 as c7,
D1.c8 as c8,
D1.c9 as c9,
D1.c10 as c10,
D1.c11 as c11,
D1.c12 as c12,
D1.c13 as c13,
D1.c14 as c14,
D1.c15 as c15
from
(select D1.c1 as c1,
D1.c2 as c2,
D1.c3 as c3,
D1.c4 as c4,
D1.c5 as c5,
D1.c6 as c6,
D1.c7 as c7,
D1.c8 as c8,
D1.c9 as c9,
D1.c10 as c10,
D1.c11 as c11,
D1.c12 as c12,
D1.c13 as c13,
D1.c14 as c14,
D1.c15 as c15
from
(select Case when D1.c1 is not null then Rank() OVER ( ORDER BY D1.c1 DESC NULLS LAST ) end as c1,
D1.c2 as c2,
D1.c3 as c3,
D1.c1 as c4,
D1.c4 as c5,
D1.c5 as c6,
D1.c6 as c7,
D1.c7 as c8,
D1.c8 as c9,
D1.c9 as c10,
D1.c10 as c11,
D1.c11 as c12,
D1.c12 as c13,
D1.c13 as c14,
D1.c14 as c15,
ROW_NUMBER() OVER (PARTITION BY D1.c1, D1.c2, D1.c3, D1.c4, D1.c5, D1.c6, D1.c7, D1.c8, D1.c9, D1.c10, D1.c11, D1.c12, D1.c13, D1.c14 ORDER BY D1.c1 ASC, D1.c2 ASC, D1.c3 ASC, D1.c4 ASC, D1.c5 ASC, D1.c6 ASC, D1.c7 ASC, D1.c8 ASC, D1.c9 ASC, D1.c10 ASC, D1.c11 ASC, D1.c12 ASC, D1.c13 ASC, D1.c14 ASC) as c16
from
(select distinct T690.SUM_REVN_AMT as c1,
T690.NAME as c2,
T2216.NAME as c3,
T690.X_PETROFAC_REVN as c4,
T690.SUM_WIN_PROB as c5,
T690.X_PERCENT_GET as c6,
T690.SUM_WIN_PROB * T690.X_PERCENT_GET / nullif( 100, 0) as c7,
T690.X_EC_PRIORITY as c8,
T19028.LOGIN as c9,
T690.X_COUNTRY as c10,
T690.X_REGION as c11,
T18311.NAME as c12,
T18641.NAME as c13,
T18238.NAME as c14
from
SIEBEL.S_BU T18238 left outer join (
SIEBEL.S_USER T19028 left outer join (
SIEBEL.S_OPTY T690 left outer join SIEBEL.S_STG T2216 On T690.CURR_STG_ID = T2216.ROW_ID) left outer join SIEBEL.S_ORG_EXT T1189 On T690.PR_DEPT_OU_ID = T1189.ROW_ID) left outer join SIEBEL.S_ORG_EXT T18311 /* Competitor */ On T690.PR_CMPT_OU_ID = T18311.ROW_ID) left outer join SIEBEL.S_ORG_EXT T18641 /* Partner */ On T690.PR_PRTNR_ID = T18641.ROW_ID) left outer join SIEBEL.S_POSTN T19114 On T690.PR_POSTN_ID = T19114.PAR_ROW_ID) left outer join SIEBEL.S_OPTY_BU T18280 On T690.ROW_ID = T18280.OPTY_ID) left outer join SIEBEL.S_OPTY_X T19415 On T690.ROW_ID = T19415.PAR_ROW_ID) On T19028.PAR_ROW_ID = T19114.PR_EMP_ID) On T18238.ROW_ID = T18280.BU_ID
) D1
) D1
where ( D1.c16 = 1 )
) D1
order by c1 desc
But When I apply Filter on this Rank column then it gives me the error. THis is the Physical query for that
select distinct Case when D1.c1 is not null then Rank() OVER ( ORDER BY D1.c1 DESC NULLS LAST ) end as c1,
D1.c2 as c2,
D1.c3 as c3,
D1.c1 as c4,
D1.c4 as c5,
D1.c5 as c6,
D1.c6 as c7,
D1.c7 as c8,
D1.c8 as c9,
D1.c9 as c10,
D1.c10 as c11,
D1.c11 as c12,
D1.c12 as c13,
D1.c13 as c14,
D1.c14 as c15
from
(select D1.c1 as c1,
D1.c2 as c2,
D1.c3 as c3,
D1.c4 as c4,
D1.c5 as c5,
D1.c6 as c6,
D1.c7 as c7,
D1.c8 as c8,
D1.c9 as c9,
D1.c10 as c10,
D1.c11 as c11,
D1.c12 as c12,
D1.c13 as c13,
D1.c14 as c14
from
(select T690.SUM_REVN_AMT as c1,
T690.NAME as c2,
T2216.NAME as c3,
T690.X_PETROFAC_REVN as c4,
T690.SUM_WIN_PROB as c5,
T690.X_PERCENT_GET as c6,
T690.SUM_WIN_PROB * T690.X_PERCENT_GET / nullif( 100, 0) as c7,
T690.X_EC_PRIORITY as c8,
T19028.LOGIN as c9,
T690.X_COUNTRY as c10,
T690.X_REGION as c11,
T18311.NAME as c12,
T18641.NAME as c13,
T18238.NAME as c14,
Case when T690.SUM_REVN_AMT is not null then Rank() OVER ( ORDER BY T690.SUM_REVN_AMT DESC NULLS LAST ) end as c15
from
SIEBEL.S_BU T18238 left outer join (
SIEBEL.S_USER T19028 left outer join (
SIEBEL.S_OPTY T690 left outer join SIEBEL.S_STG T2216 On T690.CURR_STG_ID = T2216.ROW_ID) left outer join SIEBEL.S_ORG_EXT T1189 On T690.PR_DEPT_OU_ID = T1189.ROW_ID) left outer join SIEBEL.S_ORG_EXT T18311 /* Competitor */ On T690.PR_CMPT_OU_ID = T18311.ROW_ID) left outer join SIEBEL.S_ORG_EXT T18641 /* Partner */ On T690.PR_PRTNR_ID = T18641.ROW_ID) left outer join SIEBEL.S_POSTN T19114 On T690.PR_POSTN_ID = T19114.PAR_ROW_ID) left outer join SIEBEL.S_OPTY_BU T18280 On T690.ROW_ID = T18280.OPTY_ID) left outer join SIEBEL.S_OPTY_X T19415 On T690.ROW_ID = T19415.PAR_ROW_ID) On T19028.PAR_ROW_ID = T19114.PR_EMP_ID) On T18238.ROW_ID = T18280.BU_ID
) D1
where ( D1.c15 <= 10 )
) D1
order by c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15
Thanks,
Imtiaz

Similar Messages

  • How to use "Rank" function  in Oracle?

    I need to display Top 15 records by using rank function.
    Here is my query...I need to pull top 15 FAQ's using the below query.. How can I use RANK function to display the Top 15 FAQ"s in the list.
    Select  distinct SUb1.FAQ,Sub1.FAQ_Hits,GU.display_Name_FMLS as displayname,ev.ParentLinkrecordid,ev.userid from User GU
    Join Event ev
    ON LOWER (ev.userid) IN (LOWER (GU.lanid), LOWER (Gu.racfid))
    Join (Select distinct sm.stem as FAQ,Sum(ev.Eventresults) as FAQ_Hits,ev.ParentLinkrecordid as Topic_ID from Event ev
    Join SubjectMatter sm
    ON (TO_CHAR (sm.smrecordid) = ev.eventdetail1) AND ev.eventdetail1 IS NOT NULL AND sm.smtype = 1
    Where (Upper(ev.eventsubtype) in (Upper('FAQ'),Upper('OPENFAQ')))
    AND TO_DATE (eventdatetime, 'yyyy-mm-dd hh24:mi:ss') >= TO_DATE ('20100601', 'yyyymmdd')
    and TO_DATE (eventdatetime, 'yyyy-mm-dd hh24:mi:ss') <= TO_DATE ('20100831', 'yyyymmdd')
    Group by sm.stem,ev.Parentlinkrecordid
    order by FAQ )sub1
    ON Sub1.Topic_ID = ev.ParentLinkrecordid)

    A few bits that I noticed in the query ...
    in (Upper('FAQ'),Upper('OPENFAQ'))1) Do you really a upper for a string which is already in upper case.
    Select distinct sm.stem as FAQ,Sum(ev.Eventresults) as FAQ_Hits,ev.ParentLinkrecordid as Topic_ID2) Do you need a distinct when you are using a GROUP function viz. SUM ?
    You rank query is as follows, I am not very good at the ANSI style JOIN so changed it slightly ... :-)
    Also notice the usage rank function in the "sub1" query.
    select distinct sub1.faq,
                    sub1.faq_hits,
                    gu.display_name_fmls as displayname,
                    ev.parentlinkrecordid,
                    ev.userid
    from user gu, event ev,
      (select rank() over (order by sum(ev.eventresults) desc) rnk,
              sum(ev.eventresults) as faq_hits,
              sm.stem as faq,         
              ev.parentlinkrecordid as topic_id
         from event ev, subjectmatter sm
        where (to_char(sm.smrecordid) = ev.eventdetail1)
          and ev.eventdetail1 is not null
          and sm.smtype = 1
          AND upper(ev.eventsubtype) in ('FAQ', 'OPENFAQ')
          and to_date(eventdatetime, 'yyyy-mm-dd hh24:mi:ss') >= to_date('20100601', 'yyyymmdd')
          and to_date(eventdatetime, 'yyyy-mm-dd hh24:mi:ss') <= to_date('20100831', 'yyyymmdd')
        group by sm.stem, ev.parentlinkrecordid
        order by faq) sub1
    where lower(ev.userid) in (lower(gu.lanid), lower(gu.racfid))
      and sub1.topic_id = ev.parentlinkrecordid)
      and sub1.rnk <= 15;Like mentioned above, some sample data would have helped.

  • Sql tuning using rank function

    Hi,
    Can someone help me in writing the below qry using rank() function?
    DELETE FROM stc_calllog_ext a
    WHERE a.stc_save_status = 'CT'
    AND ROWID IN (SELECT a.ROWID
    FROM stc_calllog_ext a, calllog_ext b
    WHERE a.prod_line_code= b.prod_line_code
    AND a.brand_code = b.brand_code
    AND a.model_number = b.model_number
    AND a.stc_save_status != b.stc_save_status
    AND trunc(a.stc_start_time) = trunc(b.stc_start_time)
    AND a.stc_start_time BETWEEN TRUNC(SYSDATE-8) AND TRUNC(SYSDATE)
    AND a.call_taker_userid = b.call_taker_userid
    AND a.cons_telephone_no =b.cons_telephone_no
    )

    With the information you have provided, I've come up with the following.
    SELECT A.ACCOUNT_NO, A.PAYMENT_TYPE, A.INSTALLMENT_TYPE, A.DATE_CHANGE
    FROM
        (SELECT account_no, payment_type, installment_type, date_change,
                LEAD( (payment_type), 1)
                     over (partition by account_no order by account_no, DATE_CHANGE)  LEAD_PAY,
                LEAD( (installment_type), 1)
                     over (partition by account_no order by account_no, DATE_CHANGE)  LEAD_INST
          from T_ACCNTS ) A
    WHERE A.PAYMENT_TYPE <> NVL(A.LEAD_PAY,99)
       OR A.INSTALLMENT_TYPE <> NVL(A.LEAD_INST,99)
    ORDER BY 1, 4;

  • Compile forms error because using rank function

    Hi,
    Oracle Form 9i don't known rank function in my SQL statement. When compile forms, it alerts err message: "Encountered the symbol "(" when expecting one ..."
    code:
    select * from (
    select group_id, acct_no, acct_desc, rank() over(order by acct_no desc) rank_no from customer
    where group_id='002'
    ) where rank_no< 10000
    Help me ASAP.
    Many thank,
    Bum.

    Where is INTO clause ? Plz provide the actual code you are writing.
    I think this type of queries not supported in Forms 9i.....try forms 10g or above.

  • How to use RANK function ?

    Hello everyone,
    here is the query I run in sql developer using RANKFunction.
    SELECT Empno, Ename, Job, Mgr, Hiredate, Sal
    FROM
    (SELECT Empno, Ename, Job, Mgr, Hiredate, Sal,
    *RANK*() OVER
    (ORDER BY SAL Desc NULLS LAST) AS Emp_Rank
    FROM Emp
    ORDER BY SAL Desc NULLS LAST)
    WHERE Emp_Rank < 6;How I can use this query in my report in obiee or is there any replacement of RANK() function in obiee so that I can use that to get my same above result.
    Thanks

    Kuldip wrote:
    Thanks, you are absolutely correct. However, By doing this I am getting my output as whic I was not expecting.
    Students Marks Rank
    student1 95 1
    student2 95 1
    student3 93 3
    student4 93 3
    student5 91 5
    The output should be as instead
    Students Marks Rank
    student1 95 1
    student2 95 1
    student3 93 2
    student4 93 2
    student5 91 3
    Can It be done like this ?
    Thanks.
    Edited by: Kuldip on Mar 15, 2012 11:51 PMHi Boss,
    I think you copied the above scenario from this site..
    http://oracle-bi.siebelunleashed.com/articles/rank-and-dense-rank-functionsobiee/
    Then why asking how to do this? Are you testing us? Doesn't that site say how to achieve this?

  • Problem using MDX functions in Answers Filter

    I'm using OBIEE 10.1.3.2.
    I'm using an Essbase cube as my datasource (aggregate storage).
    My level 0 members in my Date dimension are of the format yyyy-mm-dd (e.g., 2011-08-13)
    I have a dashboard prompt selecting the date from a calendar which returns the date and time (yyyy-mm-dd hh:mm:ss). So naturally I can't do just a straight equals between the prompt value and the member value.
    What I've written in the filter sql in Answers is: Date.Days = Evaluate('SUBSTRING(%1,1,10)','@{varStartDate}')
    The log shows the following:
    -------------------- SQL Request:
    SELECT Date.Days saw_0, main.total_completed_orders saw_1 FROM SIKAgg2 WHERE Date.Days = Evaluate('SUBSTRING(%1,1,10)','2011-08-09 00:00:00') ORDER BY saw_0
    -------------------- Sending query to database named mezen (id: <<9648>>):
    With
    set [Date4] as 'Filter([Date].Generations(4).members, (([Date].CurrentMember.MEMBER_ALIAS = "2011-08-09 00:00:00" OR [Date].CurrentMember.MEMBER_Name = "2011-08-09 00:00:00")))'
    select
    { [Measures].[total_completed_orders]
    } on columns,
    NON EMPTY {SUBSTRING(,1,10)SUBSTRING(,1,10)SUBSTRING(,1,10){[Date4]}} properties ANCESTOR_NAMES, GEN_NUMBER on rows
    from [SIKAgg2.main]
    So with all that being said it doesn't appear that the MDX function SUBSTRING is actually doing anything.
    1) Am I using the function incorrectly?
    2) Is there a better way to do this? I really just need to get rid of the time portion of the variable from the date prompt.
    Any help/guidance would be greatly appreciated. Spending too much time with trial and error approach.
    Thanks,
    Brad

    Brad,
    Try this way..In OBIEE RPD - Physical Layer for level 0 members in my Date dimension. Double click this member and check its type. Change the type to 'DATE' from 'DATETIME'. Delete the Date Dimension in BMM layer & Presentation Layer for again drag and drop from Physical Layer after changing the Type in physical layer.
    Normal way of building the RPD using Essbase
    Something similar to this http://www.rittmanmead.com/2009/03/dates-timestamp-and-oracle-bi-answers-filters/
    This shud solve your timestamp problem everywhere. This is one of the most common problem for Oracle sources. I have essbase as a source but unfortunately I can't replicate it as this is not having time level.
    Let me know if this solves your problem...
    In case the type is DATE only in RPD then I'll try to provide a diff soln here.
    Hope this helps

  • Error using LISTAGG function to aggregate the strings.

    HI
    I am using LISTAGG function to aggregate the strings but throws a error ORA - 19011
    The output of the aggregated function exeeds the varchar limit.
    I dont know how to change it to a LOB.
    Can you please help me.
    This is the code.
    I have used both the functions.
    RTRIM(XMLAGG(XMLELEMENT(e,FDCT.USER_NAME || ' ')).extract('//text()'), ' ')
    or
    LISTAGG(FDCT.USER_NAME, ',') WITHIN GROUP (ORDER BY FDCT.USER_NAME)
    Edited by: 787819 on Jun 22, 2011 1:46 PM

    If a function returns a VARCHAR2, then it will error (or sometimes truncate depending on function) when reaching the limit of the datatype.
    Perhaps an alternative would be to write your own user-defined aggregate function that works with a CLOB.
    http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10765/aggr_functions.htm#ADDCI2120
    A comma-separated string over 32767 in length sounds of dubious value to me anyway...

  • Getting error using  getXMLString() function

    When I use the getXMLString() function I get the following error at compile time.
    Error(57,23): cannot access class org.w3c.dom.Node; file org\w3c\dom\Node.class not found
    I don't understand why I am getting this error or how to resolve the issue. Is there a work around ? Any help is appreciated. Below is the code.
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.PrintWriter;
    import java.io.IOException;
    import java.sql.*;
    import oracle.jdbc.driver.*;
    import oracle.xml.sql.query.OracleXMLQuery;
    public class LoginServlet extends HttpServlet
    private static final String CONTENT_TYPE = "text/html; charset=windows-1252";
    public void init(ServletConfig config) throws ServletException
    super.init(config);
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException
    response.setContentType(CONTENT_TYPE);
    String username = request.getParameter("UserName");
    String password = request.getParameter("Password");
    String domain = request.getParameter("Domain");
    System.out.println("going to try to connect");
    try
    // register the JDBC driver..
    DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
    // Create the connection using the OCI8 driver
    Connection conn =
    DriverManager.getConnection("jdbc:oracle:thin:@" + domain ,username,password);
    out.println("connected to database "+ domain);
    String sqlString = "select * from atu_service";
    //OracleXMLQuery qry = new OracleXMLQuery(conn, sqlString);
    OracleXMLQuery qry = new OracleXMLQuery(conn, "select * from attrib_def ");
    // Get the XML string
    String str = qry.getXMLString(); // error occurs here.
    // Print the XML output
    out.println(str);
    // Always close the query to get rid of any resources..
    qry.close();
    out.close();
    catch(Exception e )
    e.printStackTrace();

    You need to include the Oracle XML Parse v2 class library in JDeveloper.

  • Error using insertPages function - Acrobat X Standard

    Hi there!
    i hope you can help me, since Acrobat support avoids to help me because of OEM :/
    I try to add several pages in a PDF using Javascript.
    I am getting the following message:
    NotAllowedError: Security settings prevent access to this property or method. .
    Doc.insertPages:7:Field Produktionsauftrag dt:Mouse Up
    My code:
    this.insertPages
         nPage: 0,
         cPath: "/H/Produktionsauftrag_Deutsch.pdf",
         nStart: 0,
         nEnd: 13
    I already found a solution - but that solution is pain.
    if i insert the PDF with the button using insertPages to this location it works:
    [img]http://i.imgur.com/0qbE2xw.png[/img]
    BUT!
    I have many many folders and subfolders where dozens of copys can appear.
    Acrobat is not smart enough to include all of the subfolders.
    In my case it is the shared network drive I:
    in the Folder I, there are several subfolders like I: 200, 300, 400, 500 and many coming.
    If the PDF is in Folder I: it works. If it is in folder I:\200 it won't.
    So if someone is creating a new folder e.g. 700 and copy the PDF into it, the insertPages wont work, because the folder is not trusted anymore.
    Is there an option to avoid this?
    I hope you can help me
    Thank you very much in advance!

    Thank you. This is very helpful.
    But i do not understand what to do =/
    What i think:
    Create a insertPages.js in C:\Program Files (x86)\Adobe\Acrobat 9.0\Acrobat\Javascripts
    Content of insertPages.js:
    this.insertPages(
    {nPage: 0,
    cPath: "///eukexsrv/Vorlagen_Prod_Auftr_PDF/Produktionsauftrag Deutsch.pdf",
    nStart: 0,
    nEnd: 13
    Then open the PDF file and Add a button which runs the insertPages.js
    -> HOW?
    I can't see any option to run a script from mouse up
    Also i get an error while opening acrobat:
    TypeError: this.insertPages is not a function
    7:Folder-Level:App:insertPages.js
    Edit:
    i edited my insertPages.js:
    function inpa () {
    this.insertPages(
    {nPage: 0,
    cPath: "///eukexsrv/Vorlagen_Prod_Auftr_PDF/Produktionsauftrag Deutsch.pdf",
    nStart: 0,
    nEnd: 13
    And in the button i made Mouse up -> javascript
    Code:
    inpa();
    Now i get this message:
    NotAllowedError:Security settings prevent access to this property or method.
    Doc.insertPages:8:Field Produktionsauftrag dt:Mouse Up

  • Rank function in Answers

    Hi,
    I have to produce a bar-chart with Number of Projects(Y axis), Project Phase(X axis). For example, x axis should have labels like Phase-1, Phase-2 etc., and in each phase teh number of projects should be the bar. The catch is , the number of projects should be counted only in the phase where the "Recorded_date" is max.
    In the data base, I can use something similar to this
    select * from (
    SELECT project_id, phase_id, recorded_date,
    ROW_NUMBER() OVER (PARTITION BY project_id ORDER BY recorded_date desc) as rnk
    from MAIN.project_detail) a
    where rnk=1;
    How to implement this? Please let me know if there is an alternate way. I do not want to make changes to the RPD, if I can accomplish this in Answers.
    Thank you for your time and help.

    So in your case,
    select * from (
    SELECT project_id, phase_id, recorded_date,
    ROW_NUMBER() OVER (PARTITION BY project_id ORDER BY recorded_date desc) as rnk
    from MAIN.project_detail) a
    where rnk=1;
    would be implemented by the statement 'ROW_NUMBER() OVER (PARTITION BY project_id ORDER BY recorded_date desc) as rnk'
    getting transformed to,
    rank(recorded_date by project_id)
    in the column function(fx).

  • Error using Analytic function in reports

    Hi,
    I am trying to use Oracle analytic function (lag) in a report. But am getting the below error:
    Encountered the symbol "(" when expecting one of the following:
    ,from into bulk
    This is the code in the formula column:
    function extend_lifeFormula return VARCHAR2 is
    l_extend_life VARCHAR2(80);
    l_life_in_months VARCHAR2(80);
    l_asset_id NUMBER;
    begin
    SRW.REFERENCE(:P_BOOK_NAME);
    SRW.REFERENCE(:ASSET_ID);
    SELECT asset_id,
         lag(life_in_months,1,0) over (PARTITION BY asset_id
                   ORDER BY transaction_header_id_in) Extend_Life
    INTO l_asset_id,
    l_life_in_months
    FROM fa_books
    WHERE book_type_code = 'US GAAP'
    AND asset_id = 1;
    return life_in_months;
    end;
    Has anyone experienced this error before? Does client pl/sql engine not support Analytic functions? The above query runs fine in SQL.
    Thanks,
    Ashish

    From our version of 6i Reports Builder Help, I got ...
    Oracle ORACLE PL/SQL V8.0.6.3.0 - Production
    You may check yours.

  • Error Using DataExport function in Essbase

    Hi there,
    I'm using Hyperion Essbase version 9.3.1.
    And rite now I'm trying to export data in Essbase by the new CalcScript function DataExport directly to SQL server.
    I have 11 dimensions in my Essbase application. I did create 10 fields in SQL server for storing members information and 12 other fields for periodic data. Just, the time when I export data, all the rows returned with only 7 fields for members information and 12 data fields for periodic data.
    Can anyone help? Please help!
    Best regards,
    Antony

    Antony,
    So when you use a calc script like the below:
    SET DATAEXPORTOPTIONS
         DataExportLevel ALL ;
         DataExportDynamicCalc OFF ;
         DataExportRelationalFile ON ;
         DataExportOverwriteFile ON ;
    DATAEXPORT "File" "," "b:\exports\jan.txt" "#MI";
    Your export works just as you want? (I realize you have lots of other logic, but for the sake of argument use the above).
    And then when you take the exact same code except that the DATAEXPORT command now looks like:
    SET DATAEXPORTOPTIONS
         DataExportLevel ALL ;
         DataExportDynamicCalc OFF ;
         DataExportRelationalFile ON ;
         DataExportOverwriteFile ON ;
    DATAEXPORT "DSN" "cur_sale" "newyork" "admin" "password";
    You don't get the same results?
    I get the same results regardless. Yes, one is written to a table as defined by the DSN and the other a text file but the contents are exactly the same.
    Are you seeing different rows/columns? If so, that would either suggest your table is somehow limiting what gets written to the RDBMS (it would be nice to think that Essbase would log this as an error/fail) or there is a bug in the export. I have not come across this issue.
    Regards,
    Cameron Lackpour

  • Error using time function AGO()

    Hi everyone
    I am trying to make this report using OBIEE 11.1.5 with Essabas as datasource:
    Account     ActualMonth     MonthPreviousYear     PreviousMonth     Actual Year
    I have the time dimension (like in HFM), divided into two dimensions Years (Total -> Years) and Period (Total -> Quarters -> Months).
    I use the AGO() function in the repository (BML) to get PreviousYear and PreviousMonth:
    PreviousYear: AGO("Essbase_1"."Data"."Measure" , " Essbase_1"."Year"."Gen2,Year" ,1)
    PreviousMonth : AGO("Essbase_1"."Data"."Measure" , " Essbase_1"."Period"."Gen4,Period" , 1)
    If I use the columns PreviousMonth or PreviousYear separately they work fine. However using both in the same query, I get an error:
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 43119] Query Failed: [nQSError: 22036] Level in Ago function (Gen2,Year) must be a rollup of (or equivalent to) the measure level (Gen4,Period). (HY000)
    Any idea how to solve this issue?
    Many Thanks in advance
    Mojito

    Look at the following links:
    http://obiee101.blogspot.com/2008/11/obiee-ago-and-todate-series.html
    http://oraclebiee11g.blogspot.com/2011/01/ago-function-in-obiee-11g-answers.html
    hope this helps.

  • Error using @MDShift Function

    I'm trying to create a calc script that will move the prior month's ending balance into the current month's beginning balance. After looking through the technical reference guide, I thought using the @MDshift function would be my best option. My calc script is as follows: FIX ("Test Scenario") "1016 LB Beg Balance" = @MDSHIFT("101600", 1, YTD, -1, Scenario,); ENDFIX Receiving the following error message: Error: 1200366 Error parsing formula for [1016 LB Beg Balance] (line 3): invalid arguments number in macro[@MDSHIFTMBR] What does this error message indicate? Where can I find the information needed to resolve this? A sample of my outline structure is as follows:YTD Time (Active Dynamic Time Series Member Y-T-D, Q-T-D) Quarter 1 03 02 01 Quarter 2 06 05 04Fiscal Year 2003 2004 2005Scenerio Actual Average Budget Test Scenario Any suggestions?

    Is this using Planning?I had the same, fixed it with a loop statement. Loop for the number of years you have plus one (for backcalc). First fix on BegBalance, second on the elements of the time dimension. Hope this formats ok ...Loop(4)Fix(Begbalance)"Beginning Balance" = @mdshift("Beginning Balance", 12,"Time Periods",,-1,Years, );"Ending Balance" = @mdshift("Ending Balance", 12,"Time Periods",,-1,Years, );EndfixEndLoopLoop (4)Fix(@levmbrs(Time,0))"Beginning Balance" = @PRIOR("Ending Balance");"Ending Balance" = "Beginning Balance" - "A" - "B";EndfixEndloopHope this helps.

  • Internal error using XML function in procedures

    Hi all,
    I use the XML function in a stored procedures but when i compile these i have this error PLS-00801: internal error (74806).
    The strangeness is that the single instruction launched from sql plus type
    SELECT XMLElement("? xml",xmlattributes('1.0' as "version")) FROM dual; it's right.
    thank.

    Are you sure you don't want to use the XMLROOT functionality to achieve that?
    http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14200/functions225.htm
    SQL> SELECT XMLROOT ( XMLType('<poid>143598</poid>'), VERSION '1.0', STANDALONE YES)
      2     AS "XMLROOT" FROM DUAL;
    XMLROOT
    <?xml version="1.0" standalone="yes"?>
    <poid>143598</poid>
    SQL>

Maybe you are looking for