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 & 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 advanceInteresting, 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,
AvaHi 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 PMHi,
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,
MikeThanks 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. 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,
AntonyAntony,
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 RegardsI 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.htmlHello,
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
-
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
-
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.