Using the data logged in an interface with the aggragate function
HelloI'm trying to use logged data from a source table in one of my interfaces in ODI. The problem is that one of the mappings on the columns target implies a function (sum) overall. When I run the interface, I get an error saying not "a group by expression. I checked the code and found that the columns jrn_subscriber, jrn_flag, and jrn_date are included in the select statement, but not in the group by statement (the statement group contains only remiaining two columns of the target table).
Is there a way to get around this? I have to manually change the km? If so how would I go to do it?
Also I'm using Oracle GoldenGate JKM (OGG oracle for oracle).
Thanks and really appreciate the help
Ajay
"ORA-00979"when the CDC feature (logging) using ODI with Modules of knowledge including the aggregate SQL function works [ID 424344.1]
Updated 11 March 2009 Type status MODERATE PROBLEM
In this Document
Symptoms
Cause
Solution
Alternatives:
This document is available to you through process of rapid visibility (RaV) of the Oracle's Support and therefore was not subject to an independent technical review.
Applies to:
Oracle Data Integrator - Version: 3.2.03.01
This problem can occur on any platform.
Symptoms
After successfully testing UI integration ODI using a function of aggregation such as MIN, MAX, SUM, it is necessary to implement change using tables of Journalized Data Capture operations.
However, during the execution of the integration Interface to retrieve only records from Journalized, has problems to step load module loading knowledge data and the following message appears in the log of ODI:
ORA-00979: not a GROUP BY expression
Cause
Using the two CDC - logging and functions of aggregation gives rise to complex problems.
Solution
Technically, there is a work around for this problem (see below).
WARNING: Problem of engineers Oracle a severe cautioned that such a type of establishment may give results that are not what could be expected. This is related to how ODI logging is applied in the form of specific logging tables. In this case, the aggregate function works only on the subset that is stored (referenced) in the table of logging and on completeness of the Source table.
We recommend that you avoid this type of integration set ups Interface.
Alternatives:
1. the problem is due to the JRN_ * missing columns in the clause of "group by" SQL generated.
The work around is to duplicate the knowledge (LKM) loading Module and the clone, change step "Load Data" by editing the tab 'Source on command' and substituting the following statement:
<%=odiRef.getGrpBy()%>
with
<%=odiRef.getGrpBy()%>
<%if ((odiRef.getGrpBy().length() > 0) && (odiRef.getPop("HAS_JRN").equals("1"))) {%>
JRN_FLAG, JRN_SUBSCRIBER, JRN_DATE
<%}%>
2. it is possible to develop two alternative solutions:
(a) develop two separate and distinct integration Interfaces:
* The first integration Interface loads the data into a temporary Table and specify aggregate functions to use in this initial integration Interface.
* The second integration Interfaces uses the temporary Table as Source. Note that if you create the Table in the Interface, it is necessary to drag and drop Interface for integration into the Source Panel.
(b) define the two connections to the database so that separate and distinct references to the Interface of two integration server Data Sources (one for the newspaper, one of the other Tables). In this case, the aggregate function will be executed on the schema of the Source.
Display related information regarding
Products
* Middleware > Business Intelligence > Oracle Data Integrator (ODI) > Oracle Data Integrator
Keywords
ODI; AGGREGATE; ORACLE DATA INTEGRATOR; KNOWLEDGE MODULES; CDC; SUNOPSIS
Errors
ORA-979
Please find above the content of the RTO.
It should show you this if you search this ID in the Search Knowledge Base
See you soon
Sachin
Tags: Business Intelligence
Similar Questions
-
How to use the TRUNC function with dates in the expression builder in OBIEE.
Hello
How to use the TRUNC function with dates in the expression builder in OBIEE.
TRUNC (SYSDATE, 'MM') returns 1 July 2010"where sysdate is July 15, 2010 ' in SQL. I need to use the same in the expression builder in the logical layer mdb column.
Thanks in advanceUse it instead:
TIMESTAMPADD (SQL_TSI_DAY, (DAYOFMONTH (CURRENT_DATE) *-1) + 1, CURRENT_DATE) -
Hi all
I want to use the function NOW with a different operator in obiee11.1.1.6.11 or 11.1.1.7.1
but every time I have a creating a filter as
TRAN_DATE is equal to NOW()-120, we become "an arithmetic operation is being performed on a non-digital type.»
11.1.16.11 and 11.1.1.7.1
Hare TRAN_DATE is in RPD datetime data type
Can someone tell me how to replace the error and make the report run and return the results
Do now () - 120 is a very simplistic way to look at it because it is highly ambiguous. IE: NOW less 120 "what?" Minutes? Seconds? Years? Petroleum products?
Accuracy is the key. Now() gives a timestamp (a real timestamp DATA TYPE object!), so I guess you mean days.
Timestamp data types are changed (projected through time) using the TIMESTAMPADD function, which in your case would by this formula:
TIMESTAMPADD (SQL_TSI_DAY,-120, NOW()))
-
How to use the NVL function to a parameter with comma delimited values
Gurus,
It is confusing to me. I am trying to use the NVL function, but the setting that I'm passing in my cursor contains multiple values with commas. The NVL function is confused when analyzing the values.
'Where' cursor clause...
and nvl (sn.c_attribute1,'x@#$%') in nvl (p_desig,'x@#$%'( )
translated parameter values...
and nvl (sn.c_attribute1,'x@#$%') in nvl ('SPRT''GOOD' 'BAD' 'x@#$%') -NVL does not parse the value correctly
Any idea on how to get NVL recognize 'x@#$%' , if p_desig is null?
Thank you
Scott
HI, Scott.
Whenever you have a problem, please post a small example data (CREATE TABLE and only relevant columns, INSERT statements) of all the tables involved, so that people who want to help you can recreate the problem and test their ideas.
Also post the results you want from this data, as well as an explanation of how you get these results from these data, with specific examples.
Always say what version of Oracle you are using (for example, 11.2.0.2.0).
See the FAQ forum: https://forums.oracle.com/message/9362002#9362002
My best guess, based on what you posted bone is present, that your problem is discussed in the following:
-
Using the comparison function where 2 data tables various types
Is it possible to use the comparison function in Labview you to compare 2 arrays of types of different data (e.g. Boolean and double-precision)?
Would this work? Nested for loops of index on the TRUE values of the Boolean table.
-
How to use the Substring function with Case statement.
Hi all
I have a requirement where I have to use the substring function on the ground for the report criteria.
FOR EXAMPLE
I branch domain name where I have all the information of the branch names, now some of the branch names are too large with an extension after the name.
now I want substing it, but the length of characters varies for each branch.
so is it possible where we use a box where we can define if the character of name plug exceed a value then he substing with this length.Try something like this:
LENGTH WHEN CARTER (tablename. Branch_Name) > n THEN SUBSTRING (...) Of ANOTHER tablename. Branch_Name END
where n is the number of characters that you want to start the break.
-
I use the random function and he know instructions 'case' must end with a ':' but it is!
I use the random function and he know instructions 'case' must end with a ':' but it is! I put
case 10000 timer += 2; popupName._visible = true; :
then I put
case of 10000 {timer += 2; popupName._visible = true ;}:}
but he still know it.
What I am doing wrong?
First of all, whenever you have more than three similar lines, you should probably refactor something. Especially when you have 10,000 lines. This should have sounded the alarm, but I guess you are new to this.
Second, when you have such a long code, paste everything here. Please, I beg you. It's a pain to navigate the thread.
And here's what I * think * you really want:
If (random (10001) == 10000) {}
timer += 2;
popupName._visible = true;
}
It simply means: "take a random number between 0 and 10001 (exclusive). If this number is 10,000, do something. If not, ignore this code block. »
-
Hi, I have a login page and I want to encrypt the password.
What I must first encrypt it and place it in the DB? I already have a 'normal text' user name and pass word in there to test and everthing works fine, I restrict access to work on the admin page after login. So, my next step is to harden a bit of security. I searched the web and couldn't find static function crypt as examples below. Not quite normal I have to do. I read on another site where you would need to put passwords in the DB already encrypted by PHP and then write a script to compare. I don't necessarily want to create passwords encrypted on the fly (I think), as in the case of a new user type scenerio, are some users to access the admin section and want these "*" appears in the password field.
steevo2 wrote:
> Hi, I have a login page and I want to encrypt the password. What I need to
> first encrypt it and place it in the DB?Yes. The best way to do it with PHP is to use the sha1() function,
which produces an encryption of 40 characters in a string. This means that
your password in the database column must be 40 characters wide.Dreamweaver is not a way to encrypt the data before inserting it into
the database, you will need to do it manually. Put this at the top of the
page contains it the user registration form:<>
If (isset($_POST['password'])) {}
$_POST ["password"] = sha1($_POST['password']);
}
?>> I read on another site
> where you would need to put passwords in the DB already encrypted by PHP
> and then write a script to compare.All you need to do is add the same code as above at the top of the page
who uses the Log user Dreamweaver Server behavior.> wanting * to show
> upward into the password field.This is done by selecting the password for the TextField input Type
element in the property inspector.--
Adobe Community Expert David Powers
Author, "The Essential Guide to Dreamweaver CS3" (friends of ED)
Author, "PHP Solutions" (friends of ED)
http://foundationphp.com/ -
Problem in the export using the QUERY functionality
Problem in the export using the QUERY functionality
I'm trying to export some rows in a table using the query functionality
and I have some errors... I'm using the syntax is
system@orcl QUERY = scott.emp expdp: '"WHERE emp_no = 123455" '
DIRECTORY = data_pump_dir DUMPFILE = data_pump.dmp
LOGFILE = data_pump_12345.log INDEX = n
Can someone tell me please the problem with that statement
I also tried to use the simple export
exp file system@orcl = orcl_export.dmp log = orcl_export.log
tables = Scott.EMP index = QUERY = n------"WHERE emp_no\ = 123455\"
and this error
EXP-00008: ORACLE error 904
ORA-00904: identify invalid
My os is Solaris
Please let me know what the problemHello
Try to create parfile and use that, otherwise, you will need to escape each clause correctly to run exp or expdp successfully.
test.par
tables=emp query="WHERE emp_no=123455" or tables=myobjects query="WHERE owner='SYS'" $> exp username/password parfile=test.par Export: Release 10.2.0.1.0 - Production on Thu Mar 19 10:17:48 2009 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining Scoring Engine options Export done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set About to export specified tables via Conventional Path ... . . exporting table MYOBJECTS 22650 rows exported Export terminated successfully without warnings.
Concerning
Published by: OrionNet on March 19, 2009 10:21
-
I installed lightroom on a new computer (windows 10) cc. I copied all of my original photos on a hard drive and them imported by adding them on the new computer using the import function. I have a catalog to date backed on thehard drive and have tried to insert into the new folder to lightroom. Unfortunately none of my changes, collections etc. seem to be present on the new computer. I still work lightroom with any changes on the old computer where all the photos. Help
He seemed to have solved this problem - the catalogue of the old computer has been saved as a zip file. Once extracted, it could be used as the primary catalog for lightroom on the new computer
-
SQL using the analytic function
Hi allI want a help in the creation of my SQL query to retrieve the data described below:
I have a test of sample table containing data as below:
State ID Desc
MICHAEL 1 T1
ACTIVE 2 T2
T3 3 SUCCESS
DISABLE THE T4 4
The thing I want to do is to select all the lines with an ACTIVE status in the table but is there is no ACTIVE status, my request will give me the last line with MICHAEL status.
I can do this in a single request by using the analytical function for example, if yes can yiu help me on the request of unpacking.
Kind regards
Raluce
Something like that?
I had to fix it.
with testdata until)
Select 1 id, "T1" dsc "DISABLED" status of Union double all the
Select 2 id, 'T2' dsc, the status "ACTIVE" of all the double union
Select id 3, "T3" dsc, the status of 'SUCCESS' of all the double union
Select 4 id, "T4" dsc "DISABLED" status of double
)Select
ID
dsc
status
of testdata
where
status =
-case when (select count (*) in testdata where status = 'ACTIVE') > 0
then 'ACTIVE '.
Another 'DISABLED '.
end
and)
ID in (select id from testdata where status = ' ACTIVE')
or
ID = (select max (id) in testdata when status = 'DISABLED')
)STATE ID DSC
'2' 'T2' 'ACTIVE '.
Maybe it's more efficient
Select
ID
dsc
status
of testdata
where
status =
-case when (select count (*) in testdata where status = 'ACTIVE') > 0
then 'ACTIVE '.
Another 'DISABLED '.
end
and
ID =)
-case when (select count (*) in testdata where status = 'ACTIVE') > 0
then id
on the other
(select max (id) in testdata when status = 'DISABLED')
end
)Post edited by: correction of chris227
Post edited by: chris227
extended -
Do I need to use the NVL function for this request?
I seem to have some problems using the NVL function on a date. I'm trying to create a query pulls back just a date a file was sent between the sysdate and the date_sent more a minute. Here is the code I use...
Oracle: 10.2 G
Currently Output (null):SELECT date_sent as date_sent INTO iDateSent FROM tableX WHERE file_id= 9999 AND date_sent BETWEEN sysdate AND date_sent + 1/1440;
Desired output when date_sent is null:DATE_SENT
Note:DATE_SENT 0:0:000 0:00:00
date_sent column is in a normal date - same format as sysdate format.
The problem I encounter is when date_sent is null, the stored procedure, I built crashes because date_sent returns a null and a null value cannot be stored in the variable 'iDateSent '. I was thinking about using the NVL function here to resolve, however, I'm not entirely sure who will work with the above query. Any thoughts?
Published by: user652714 on July 9, 2010 12:58
Published by: user652714 on July 9, 2010 13:11Hello
you said: "desired output when date_sent is null: date_sent: 0".
It is not possible to have a date of 'zero '."and a null value cannot be stored in the variable 'iDateSent'. '.
I do not think: If this variable is declared normally (without any not null not constrained to this topic) so that it can contain a null value. (it's 99% of the time in PL/SQL).
I think it's that your SQL retrieves no rows, to manage what you should put an exception handler:
begin SELECT date_sent as date_sent INTO iDateSent FROM tableX WHERE file_id= 9999 AND date_sent BETWEEN sysdate AND date_sent + 1/1440; exception when NO_DATA_FOUND then iDateSent:=null; end;
So what you can do if you don't want the date empty a nvl:
return(nvl(iDateSent,sysdate)); -- or another date ...
Published by: user11268895 on July 9, 2010 22:09
-
How to extract the second sysdate value using the EXTRACT function
Hello
I want to extract the second sysdate value using the EXTRACT function.
When I run the following query I get an error;
SELECT extract (second OF SYSDATE) FROM dual;
ORA-30076: field of invalid extract for the source of the extract.
When I do to extract the month I get the correct result.
Is there some necessary formatting by specifying the sysdate (or any other date value) in the query. ?
Thank you.You can extract only the year/month / day, day
SQL> Select extract(year from sysdate) from dual; EXTRACT(YEARFROMSYSDATE) ------------------------ 2008 SQL> Select extract(day from sysdate) from dual; EXTRACT(DAYFROMSYSDATE) ----------------------- 20 SQL> Select extract(month from sysdate) from dual; EXTRACT(MONTHFROMSYSDATE) ------------------------- 11 IF you enter Minute or Seconds SQL> Select extract(minute from sysdate) from dual; Select extract(minute from sysdate) from dual * ERROR at line 1: ORA-30076: invalid extract field for extract source but with timestamp you can get the seconds SQL> select EXTRACT(second FROM current_timestamp) from dual; EXTRACT(SECONDFROMCURRENT_TIMESTAMP) ------------------------------------ 39.473 SQL> select EXTRACT(second FROM current_timestamp) from dual; EXTRACT(SECONDFROMCURRENT_TIMESTAMP) ------------------------------------ 57.474 SQL> / EXTRACT(SECONDFROMCURRENT_TIMESTAMP) ------------------------------------ 59.787 SQL> / EXTRACT(SECONDFROMCURRENT_TIMESTAMP) ------------------------------------ .412 SQL> / EXTRACT(SECONDFROMCURRENT_TIMESTAMP) ------------------------------------ .99 SQL> / EXTRACT(SECONDFROMCURRENT_TIMESTAMP) ------------------------------------ 1.458 SQL> / EXTRACT(SECONDFROMCURRENT_TIMESTAMP) ------------------------------------ 1.896 SQL> / EXTRACT(SECONDFROMCURRENT_TIMESTAMP) ------------------------------------ 2.334
Edited by: Viswarayar Maran on November 20, 2008 14:30
-
How to connect the parallel test using the logarithmic function Teststand database result
Hello
How can I connect a test result of 4 EHR tested in parallel using the logarithmic function Teststand database
I use Labview 2013, 2013 Teststand and sequential model.
The test is performed using a single digital card (SMU-6556). The FSD 4 is connected to the port of the digital map and is tested in parallel.
Currently at the end of the test, I would have a report with all the measures, but I need 4 reports (1 report / dut)
TKS
-
When I use the library function node call in real time, is loaded only once for all or load the DLL every time when it is called?
I have a critical application in real time, in which I use a piece of DLL function developed in C++. It is ok? Make sure any senior developer?
Thank you in advance.
The user interface thread is the thread that is used to update the user interface. It's slow. And it's supposed to be that way because humans are slow.
The call library function node can be configured as this thread to use in the configuration for it dialog box. Please visit the LabVIEW documentation on how to do this.
Maybe you are looking for
-
How to remove records of e-mail on a macbookpro?
-
Cannot install windows updates
error code 80240016, please help me...
-
This does not happen every time, but I understand not often true. It messes up the printer and it wont let me load all programs.
-
I usually used slog2info to ssh to the real device to trace the journal without any problem, a week ago. But this week, even the true device is connected, when I use slog2info - w, there is no output log but it can out put newspaper of the Simulator.
-
Best way to reinstall Windows 7 on a virtual machine
I have 2 questions, first, I'm sure I know the answer to but it leads to the second. I have a new Windows 7 Machine. I have played with it for a bit, but now intend to install server 2002 on it, then use W7 in a virtual environment. The questions are