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...

Similar Messages

  • Select using XMLAGG function cutting off the string

    Hello,
    I have string "Oracle & Oracle", when run thru the following statement I am getting &amp as not full string,
    how to avoid this and to get the right values
    SQL> select col1 from t;
    COL1
    SQL & SQL
    Test & Test
    Oracle & Oracle
    SQL> select
      2  RTRIM (XMLAGG (XMLELEMENT (E,XMLATTRIBUTES (col1|| ',' AS "Seg"))ORDER BY col1 ASC).EXTRACT ('./E[not(@Seg = preceding-sibling::E/@Seg)]/@Seg'),',') col1
      3  from t;
    COL1
    Oracle & Oracle,SQL & SQL,Test & TestThe expected output is
    COL1
    Oracle & Oracle,SQL & SQL,Test & TestAny help would be greatly appreciated
    Thanks,

    Hi,
    & has a special meaning in XML.
    One way to avoid the problem is to avoid using '&' in your XML opeations. If you can identify some string that never occurs in col1 (I used '~?~' below) then you can change all the '&'s in col1 to that string before doing the XML operations, and change all the '~?~'s back to '&'s afterwards, like this:
    select  REPLACE ( RTRIM ( XMLAGG ( XMLELEMENT ( E
                                                     , XMLATTRIBUTES (  REPLACE ( col1
                                                  , '~?~'
                                                       || ',' AS "Seg"
                                       ) ORDER BY col1 ASC
                                 ).EXTRACT ('./E[not(@Seg = preceding-sibling::E/@Seg)]/@Seg')
              , '~?~'
              )    AS new_col1
    from    t;

  • Help in using listagg function for more than 8000 char.

    Hi Friends,
    Need you urgent help in using listagg function for more than 8000 char.
    I did the below sample SQL and in "e_orig" and "d_orig" for upto 4000 char it is working fine but I have to use it for more than 8000 char. and it is giving error,
    I checked the listagg function is having limitation of 4000 char.
    I tried but I am unable to achive this. Can someone provide me a sample example to achive this
    select d.dname,d.loc,e.hiredate
    ,listagg(e.ename,',' ) within group (order by e.deptno) over (partition by e.deptno) as e_orig
    ,listagg(e.ename, ',') within group (order by e.sal) over (partition by e.deptno) as d_orig
    from emp e, dept d
    where e.deptno=d.deptno;[ This is my first post, I gone through the guideline for posting a post , and try to go according to that ( I have not pasted here create table and insert as I have used basic table emp, dept for example), please let me know if still I should give this, I will take care from my next post ]
    Thanks in advance

    Interesting, I didn't know you could do that, but...
    BluShadow wrote:
    You could write some PL/SQL code that does it all for you, but that would involve loops and would be slow.Well, objects are written in PL/SQL aren't they? And presumably there'll be implicit looping too? So it's not at all obvious that this method will be faster than doing the joining in PL/SQL in memory. The only way to find out is to benchmark them - so I have done that.
    I noticed that OP's ref cursor actually only ever retrieves a single record for a bound department number, so I decided the best thing would be to test using a procedure that passes an output string back. I selected all (109) employees and put spaces in to ensure above 4000 characters. I also noticed that as he is using PL/SQL he probably can use a VARCHAR2 type, but just not ListAgg in the query, so I wrote short procedures as follows:
    SimpleAggChr     - bulk collect and array processing, VARCHAR2 output
    ClobAggPrc     - the custom aggregation method, CLOB output
    SimpleAggClob     - bulk collect and array processing, CLOB output
    I then wrote a driving script that calls them in the order above and times each call (I like benchmarking so I have my own timing object to make it easy). I then print the lengths for checking, and my object writes the timings to my output table. Running a few times I got varying results, but generally it looks like there isn't a lot to choose between them for performance.
    Here's the procedure code:
    CREATE OR REPLACE TYPE char100_list_type AS TABLE OF VARCHAR2(100)
    CREATE OR REPLACE PROCEDURE SimpleAggChr (x_out OUT VARCHAR2) IS
      l_enames     char100_list_type;
    BEGIN
      SELECT first_name || '                                        ' || last_name
        BULK COLLECT INTO l_enames
        FROM employees
       ORDER BY salary;
      FOR i IN 1..l_enames.COUNT LOOP
        x_out := x_out || l_enames(i) || ',';
      END LOOP;
    END SimpleAggChr;
    CREATE OR REPLACE PROCEDURE SimpleAggClob (x_out OUT CLOB) IS
      l_enames     char100_list_type;
    BEGIN
      SELECT first_name || '                                        ' || last_name
        BULK COLLECT INTO l_enames
        FROM employees
       ORDER BY salary;
      FOR i IN 1..l_enames.COUNT LOOP
        x_out := x_out || l_enames(i) || ',';
      END LOOP;
    END SimpleAggClob;
    SHO ERR
    PROMPT ClobAggPrc
    CREATE OR REPLACE PROCEDURE ClobAggPrc (x_out OUT CLOB) IS
    BEGIN
      SELECT clobagg(first_name || '                                        ' || last_name || ',')
        INTO x_out
        FROM employees
       ORDER BY salary;
    END ClobAggPrc;
    SHO ERRand the driving script:
    SET SERVEROUTPUT ON
    SET TIMING ON
    DECLARE
      l_enames_c1     CLOB;
      l_enames_c2     CLOB;
      l_enames_v     VARCHAR2(32767);
      l_timer     timer_set_type := timer_set_type ('Aggregation');
    BEGIN
      Utils.g_id := 'Aggregation';
      SimpleAggChr (l_enames_v);
      l_timer.Increment_Time ('SimpleAggChr');
      ClobAggPrc (l_enames_c1);
      l_timer.Increment_Time ('ClobAggPrc');
      SimpleAggClob (l_enames_c2);
      l_timer.Increment_Time ('SimpleAggClob');
      DBMS_Output.Put_Line ('SimpleAggChr returned string of length ' || Length (l_enames_v));
      DBMS_Output.Put_Line ('ClobAggPrc returned string of length ' || Length (l_enames_c1));
      DBMS_Output.Put_Line ('SimpleAggClob returned string of length ' || Length (l_enames_c2));
      l_timer.Write_Times;
    END;
    SET TIMING OFF
    SET LINES 150
    SET PAGES 1000
    COLUMN id FORMAT A30
    COLUMN line_text FORMAT A120
    SELECT line_text
      FROM output_log
    WHERE id = 'Aggregation'
    ORDER BY line_ind
    /and the results:
    SimpleAggChr returned string of length 5779
    ClobAggPrc returned string of length 5779
    SimpleAggClob returned string of length 5779
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:27.05
    LINE_TEXT
    Timer Set: Aggregation, constructed at 03 Nov 2011 16:27:07, written at 16:27:35
    ================================================================================
    [Timer timed: Elapsed (per call): 0.02 (0.000016), CPU (per call): 0.01 (0.000010), calls: 1000, '***' denotes corrected
    line below]
    Timer              Elapsed          CPU          Calls        Ela/Call        CPU/Call
    SimpleAggChr          9.84         0.36              1         9.84400         0.36000
    ClobAggPrc            9.37         0.32              1         9.37400         0.32000
    SimpleAggClob         8.25         0.22              1         8.25000         0.22000
    (Other)               0.00         0.00              1         0.00000         0.00000
    Total                27.47         0.90              4         6.86700         0.22500
    13 rows selected.

  • How to Use LISTAGG function @ OWB 11.2.0.3 (11gR2)

    Hi,
    I would like to create mapping using LISTAGG function at OWB - 11.2.0.3 (Version).
    Could you please suggest in which operator (LISTAGG(ENAME, '; ') WITHIN GROUP (ORDER BY DEPTNO)) i can write below statement.
    SELECT DEPTNO,
    LISTAGG(ENAME, '; ') WITHIN GROUP (ORDER BY DEPTNO) AS ENAME
    FROM SCOTT.EMP
    GROUP BY DEPTNO
    Regards,
    Ava

    Hi Ava
    Use the aggregator, see the image below for your example;
    https://blogs.oracle.com/warehousebuilder/resource/images/owb_listagg.jpg
    Cheers
    David

  • How can I use AGO function with aggregates

    I use aggregated table and a detailed table
    I have time hierarchy whose lowest level is date. For sales I
    created year-to-year (YTD) comparision with AGO function. It
    works OK.
    BUT, I want to speed it up, so I used aggregates. I created new
    time table grouped by MONTH and corresponding agg_SALES table. I
    created connections and mapped the fields. It works OK for
    normal queries, that means my queries at month level use
    aggregates. BUT when I add YTD measures or YAGO measure in query, it goes to
    then SALES table whose grain is date.
    How can I force BI Server to use AGO function with aggregates?
    I use OBIEE 10.1.3.4
    Thank you
    Ishaq
    (Question originally taken from ITtoolbox and posted by Gorazd)
    SORRY - THE QUESTION IS IN THE WRONG FORUM
    Edited by: ishaq12 on Nov 19, 2008 12:21 PM

    Hi,
    you can not do it in Administration tool but you can set agregation for that field in Answers (fx->Agregation rule->Sum) and effect should be the same. Note that it may not work properly on Oracle 10g as generated SQL is not 100% recognized, on 11g everything is OK (at least in my case).
    Regards,
    Marko
    Edited by: user10449532 on 2008.11.19 06:29

  • Use SQL function to get the original order number using the invoice number

    Hi All,
    wondering is someone can help me with this challenge I am having?  Often I need to return the original order numbers that created the resulting invoce.  This is a relatively simple seriese of joins in a query but I am wanting to simplify it using a SQL function that can be referenced each time easily from with in the SELECT statement.  the code i currently have is:
    Use SQL function to get the original order number using the invoice number
    CREATE FUNCTION dbo.fnOrdersThatMakeInvoice(@InvNum int)
    RETURNS nvarchar(200)
    AS
    BEGIN
    DECLARE @OrderList nvarchar(200)
    SET @OrderList = ''
    SELECT @OrderList = @OrderList + (cast(T6.DocNum AS nvarchar(10)) + ' ')
    FROM  OINV AS T1 INNER JOIN
          INV1 AS T2 ON T1.DocEntry = T2.DocEntry INNER JOIN
          DLN1 AS T4 ON T2.BaseEntry = T4.DocEntry AND T2.BaseLine = T4.LineNum INNER JOIN
          RDR1 AS T5 ON T4.BaseEntry = T5.DocEntry AND T4.BaseLine = T5.LineNum INNER JOIN
          ORDR AS T6 ON T5.DocEntry = T6.DocEntry
    WHERE T1.DocNum = @InvNum
    RETURN @OrderList 
    END
    it is run by the following query:
    Select T1.DocNum, dbo.fnOrdersThatMakeInvoice(T1.DocNum)
    From OINV T1
    Where T1.DocNum = 'your invoice number here'
    The issue is that this returns the order number for all of the lines in the invoice.  Only want to see the summary of the order numbers.  ie if 3 orders were used to make a 20 line inovice I only want to see the 3 order numbers retuned in the field.
    If this was a simple reporting SELECT query I would use SELECT DISTINCT.  But I can't do that.
    Any ideas?
    Thanks,
    Mike

    Thanks Gordon,
    I am trying to get away from the massive table access list everytime I write a query where I need to access the original order number of the invoice.  However, I have managed to solve my own problem with a GROUP BY statement!
    Others may be interested so, the code is this:
    CREATE FUNCTION dbo.fnOrdersThatMakeInvoice(@InvNum int)
    RETURNS nvarchar(200)
    AS
    BEGIN
    DECLARE @OrderList nvarchar(200)
    SET @OrderList = ''
    SELECT @OrderList = @OrderList + (cast(T6.DocNum AS nvarchar(10)) + ' ')
    FROM  OINV AS T1 INNER JOIN
          INV1 AS T2 ON T1.DocEntry = T2.DocEntry INNER JOIN
          DLN1 AS T4 ON T2.BaseEntry = T4.DocEntry AND T2.BaseLine = T4.LineNum INNER JOIN
          RDR1 AS T5 ON T4.BaseEntry = T5.DocEntry AND T4.BaseLine = T5.LineNum INNER JOIN
          ORDR AS T6 ON T5.DocEntry = T6.DocEntry
    WHERE T1.DocNum = @InvNum
    GROUP BY T6.DocNum
    RETURN @OrderList 
    END
    and to call it use this:
    Select T1.DocNum, dbo.fnOrdersThatMakeInvoice(T1.DocNum)
    From OINV T1
    Where T1.DocNum = 'your invoice number'

  • I have just updated my iPhone to version 5.1, and the camera button next to the "slide to unlock" button does not work at all. It used to function well before the update. Can someone help??

    I have just updated my iPhone to version 5.1. After the update, the camera button next to the "slide to unlock" button does not work at all. It used to function well before the update. It happens to my friends as well. What should I do? Can someone help?? Thanks!!!!

    Slide the camera button up

  • Error Using LISTAGG SQL Function

    Hello,
    I'm trying to use the new LISTAGG SQL function with the following expression in a report:
    select listagg(email, ';') within group (order by email) as email_list from sba_registration_entries where team=241
    and I get the following SQL error in Apex SQL Workshop:
    ORA-00923: FROM keyword not found where expected
    Is this function enabled on the apex.oracle.com site? Am I using the correct syntax?

    Hi,
    The current database on apex.oracle.com is "Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production"
    The LISTAGG function seems to be from version 11.2: [http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/functions087.htm] ?
    Andy

  • 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.

  • Using analytic function to get the right output.

    Dear all;
    I have the following sample date below
    create table temp_one
           id number(30),  
          placeid varchar2(400),
          issuedate  date,
          person varchar2(400),
          failures number(30),
          primary key(id)
    insert into temp_one values (1, 'NY', to_date('03/04/2011', 'MM/DD/YYYY'), 'John', 3);
    insert into temp_one values (2, 'NY', to_date('03/03/2011', 'MM/DD/YYYY'), 'Adam', 7);
    insert into temp_one values (3, 'Mexico', to_date('03/04/2011', 'MM/DD/YYYY'), 'Wendy', 3);
    insert into temp_one values (4, 'Mexico', to_date('03/14/2011', 'MM/DD/YYYY'), 'Gerry', 3);
    insert into temp_one values (5, 'Mexico', to_date('03/15/2011', 'MM/DD/YYYY'), 'Zick', 9);
    insert into temp_one values (6, 'London', to_date('03/16/2011', 'MM/DD/YYYY'), 'Mike', 8);this is output I desire
    placeid       issueperiod                               failures
    NY              02/28/2011 - 03/06/2011          10
    Mexico       02/28/2011 - 03/06/2011           3
    Mexico        03/14/2011 - 03/20/2011          12
    London        03/14/2011 - 03/20/2011          8All help is appreciated. I will post my query as soon as I am able to think of a good logic for this...

    hI,
    user13328581 wrote:
    ... Kindly note, I am still learning how to use analytic functions.That doesn't matter; analytic functions won't help in this problem. The aggregate SUM function is all you need.
    But what do you need to GROUP BY? What is each row of the result set going to represent? A placeid? Yes, each row will represent only one placedid, but it's going to be divided further. You want a separate row of output for every placeid and week, so you'll want to GROUP BY placeid and week. You don't want to GROUP BY the raw issuedate; that would put March 3 and March 4 into separate groups. And you don't want to GROUP BY failures; that would mean a row with 3 failures could never be in the same group as a row with 9 failures.
    This gets the output you posted from the sample data you posted:
    SELECT       placeid
    ,             TO_CHAR ( TRUNC (issuedate, 'IW')
                  , 'MM/DD/YYYY'
                ) || ' - '|| TO_CHAR ( TRUNC (issuedate, 'IW') + 6
                                             , 'MM/DD/YYY'
                               )     AS issueperiod
    ,       SUM (failures)                  AS sumfailures
    FROM        temp_one
    GROUP BY  placeid
    ,            TRUNC (issuedate, 'IW')
    ;You could use a sub-query to compute TRUNC (issuedate, 'IW') once. The code would be about as complicated, efficiency probably won't improve noticeably, and the the results would be the same.

  • 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 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

  • 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.

  • Error using a method call in the starting conditions of a Workflow

    Hi,
    In SRM 4, I have a doubt about a start condition with WFWS14000109 I need to trigger the WF depending on organizational unit of the requester (not purchase group or purchase organization).
    I have seen in the editor, in SWB_COND in the part of requisitionerUser the Method ReadOrgUnit.
    I change to traditional mode of the editor and when I select the method I get in Express1. field
    &_EVT_OBJECT.REQUISITIONERUSER.READORGUNIT(_RESULT='OBEG';ACTORGUNIT= )&
    If I use = and the organizational unit in express2 field I get error
    Partial expression expected (expression '&_EVT_OBJECT_REQUISITIONERUSER.READORGUNIT(_RESULT',position       76)
    Can anybody say me where is the error? how I should express the condition.
    Thanks
    Best Regards

    I don't think you can use a BOR method in a condition. At least not as far as I know. I think it would be better to create a virtual attribute in your delegated subtype of BUS2121 and use that in the condition.
    Regards,
    Martin

  • Can I use "dvt" function for customizing the chart format in OBIEE 11g?

    Hi,
    ".pcxml" file cannot be found in OBIEE11g. However, can I use "dvt" function for customization? If yes, how?
    Reference for dvt function:
    http://docs.oracle.com/cd/E23943_01/apirefs.1111/e12418/tagdoc/dvt_pieGraph.html

    Hello,
    I know it's possible, because i already found some blogs about changing the chart colors and turning off the animated graphs.
    <Graph visualEffects="NONE" animationDuration="0">
    But we want to alter more chart options, like make a bar chart default stacked. In 10G this was possible. I think this is also
    possible in 11G through the dvt-graph-skin.xml, but what i want to know is, is there a document that explains which tags you could use in this file.
    It would be great to get some help on this.

Maybe you are looking for

  • Late 2011 macbook pro a1278 no keyboard or trackpad

    LATE 2011 MBP a1278 , i5  , running Mountain Lion 10.8.5 Keyboard and Trackpad stopped working after a regular shut down with no peripherals attached or bluetooth on. Keyboard allows pram and smc reset before entering OS X environment . Only power bu

  • Logic for stock aging report

    I am trying to create a stockaging report using 0IC_C03. I am see that the tables actually stores the qty recieved and issued of an article on a particular day/period. Can some one explain how it is being used in aging? How is it used to compute agai

  • Html view is not visible

    Hi Guys i am calling a webtemplate from vc by using html view but the contents of html view is not visible in the application but html view window is opening but blank screen when i am trying this link direct in internet explorer its opening even www

  • Page format problem while converting spool job to PDF file

    Hi, I convert the sapscript from spoollist to pdf with the FM CONVERT _ OTFSPOOLJOB _ 2 _ PDF giving the spool id but I can not get the file properly. It adds a raigth margin to the PDF file. Should I call aany other FM to format the PDF file ? Thank

  • Unable to take export from particular tables from the schema.

    i created a schema duser data is imported and now i want to take select tables from this schema. the tables are (partyhdr,partyaddressdtl,partycontactdtl,partydsdtl,partytdsexcludedtl,partycurrencydtl) D:\>EXP DUSER/LOG@ORCL FILE=20121221PARTY0228PM.