Error: XPath query string returns multiple nodes
Hi all,
I am facing issue with the assign activity.
Error message:
com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure} parts: {{ summary=<summary>*XPath query string returns multiple nodes. The assign activity part and query are returning multiple nodes. The assign activity part and query named in the error message returned multiple nodes. It should return single node. According to BPEL4WS specification 1.1 section 14.3, the assign activity part and query named in the error message should not return multiple nodes. Verify the part and xpath query named in the error message at line number 2005 in the BPEL source*.
BPEL code:
<copy>
<from variable="Invoice_Tax_loopCounter"/>
<to variable="Var_Invoice_Tax_Contacts" part="payload" query="/ns30:Invoice_Tax_Contacts/ns30:Invoice/ns29:Get_InvoiceOutput[bpws:getVariableData'Invoice_Tax_loopCounter')]/ns29:ADDR_ATTRIBUTE2"/>
</copy>
We are using SOA 11.1.1.3 version.
Any pointers on this?
Thanks in advance
Hi-
This is because you are have multiple nodes either in source or target XML.
My guess is some nodes of your XML might be repeating (means a single element/node has multiple values). Can you please check that or please post your XML here.
Edited by: 145678 on Mar 7, 2011 6:28 PM
Similar Messages
-
Human Workflow Task XPath query string returns multiple nodes.
I am looking for trouble shooting help for this error. I am no sure if it is a server or jdev issue.
I am running JDev version 10.1.3.3 and console version 10.1.3.1.0 locally.
General information on the BPEL process:
I have a temporary table in Oracle lite that I created items to be review by the user. I created a synchronous BPEL process. The first step in developing this process, I created the straight forward invoke the table to get the records, transform the records with a change the approve flag = "Y", and invoke the table to update the records. Works like a charm. I followed the online tutorial by dropping a human task after the transform, configured the parameters, setup the assignments, and moved the invoke to update table under the approved condition. If the table has only one record, the process runs great but if there are two records I get the following error message.
<selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"><part name="summary"><summary>XPath query string returns multiple nodes.
According to BPEL4WS spec 1.1 section 14.3, The assign activity part and query /ns3:TempItemCollection/ns3:TempItem/ns3:ItemNbr should not return multipe nodes.
Please check the BPEL source at line number "178" and verify the part and xpath query /ns3:TempItemCollection/ns3:TempItem/ns3:ItemNbr.
</summary>
</part></selectionFailure>
=================
The error occurs in the first assign of the Human task after the assign copies the fields for the title. I underlined line number 178.
<correlationSets>
<correlationSet name="WorkflowTaskIdCor"
properties="taskservice:taskId"/>
</correlationSets>
<sequence>
<assign name="HumanTask1_1_AssignTaskAttributes">
<copy>
<from expression="concat(ora:getProcessURL(), string('/HumanTask1/HumanTask1.task'))"/>
<to variable="initiateTaskInput" part="payload"
query="/taskservice:initiateTask/task:task/task:taskDefinitionURI"/>
</copy>
<copy>
<from expression="number(3)"/>
<to variable="initiateTaskInput" part="payload"
query="/taskservice:initiateTask/task:task/task:priority"/>
</copy>
<copy>
<from>
<payload xmlns="http://xmlns.oracle.com/bpel/workflow/task">
<Case xmlns="http://xmlns.oracle.com/bpel/workflow/task"/>
<CourtDate xmlns="http://xmlns.oracle.com/bpel/workflow/task"/>
<ErrorMessage xmlns="http://xmlns.oracle.com/bpel/workflow/task"/>
<ItemName xmlns="http://xmlns.oracle.com/bpel/workflow/task"/>
<Payment xmlns="http://xmlns.oracle.com/bpel/workflow/task"/>
<Zip xmlns="http://xmlns.oracle.com/bpel/workflow/task"/>
<ProcessFlag xmlns="http://xmlns.oracle.com/bpel/workflow/task"/>
<LastUpdated xmlns="http://xmlns.oracle.com/bpel/workflow/task"/>
<AddedDate xmlns="http://xmlns.oracle.com/bpel/workflow/task"/>
<CityAttnyAmount xmlns="http://xmlns.oracle.com/bpel/workflow/task"/>
<ApprovalFlag xmlns="http://xmlns.oracle.com/bpel/workflow/task"/>
<ProlawKey xmlns="http://xmlns.oracle.com/bpel/workflow/task"/>
<ProcessKey xmlns="http://xmlns.oracle.com/bpel/workflow/task"/>
</payload>
</from>
<to variable="initiateTaskInput" part="payload"
query="/taskservice:initiateTask/task:task/task:payload"/>
</copy>
<copy>
<from expression="concat(string('Item Fee Approval '), bpws:getVariableData('Invoke_1_Select_RecordsSelect_OutputVariable','TempItemCollection','/ns3:TempItemCollection/ns3:TempItem/ns3:ItemName'))"/>
<to variable="initiateTaskInput" part="payload"
query="/taskservice:initiateTask/task:task/task:title"/>
</copy>
<copy>
<from variable="Invoke_1_Select_RecordsSelect_OutputVariable"
part="TempItemCollection"
query="/ns3:TempItemCollection/ns3:TempItem/ns3:ItemNbr"/>
<to variable="initiateTaskInput" part="payload"
query="/taskservice:initiateTask/task:task/task:payload/task:Item"/>
</copy>
<copy>
Thank you for any help you can give me.Here is how I solved this problem: I was told by the metalink folks that I should use the same verion of SOA console as jdev. So I went back to jdev 10.1.3.1. Rather than reading from the Oracle lite table, I dumped the table into a flat file. I read flat file and populated the workflow. Remember to set the 'messages in batch' flag in the file adapter to 1 and the number of records to skip to zero in the format builder for the flat file. The process now reads each record and creates an instance for that each record. In other words, if I have 8 records in my flat file, I will have 8 instances of the process running on the console. Thanks Jeremy for your help figuring this out.
Edited by: user7725126 on Nov 19, 2009 3:56 PM -
XPath query string returns zero node error
I have created car loan bpel application. One is Citi Loan and another is Star Loan.
I have created just like similar to sample loan demo.
I have entered the SSN, email, carModel, carYear, loanAmount and creditRating value and submitted. It will initiated the following tasks successfully.
StarLoan Instance
CitiLoan Instance
TaskManager Instance
CreditRating Instance
Root appln. instance
I have created one user approval page for Approve/Reject (jsp). Through this page, I have approved the CitiLoan offer. I have faced the following errors.
<output>
<part name="payload" >
<loanOffer>7.4</loanOffer>
</part>
</output>
<loanOffer>7.4</loanOffer>
<selectionFailure>
<part name="summary" >
<summary>XPath query string returns zero node. According to BPEL4WS spec 1.1 section 14.3, The assign activity <to> part query should not return zero node. Please check the BPEL source at line number "90" and verify the <to> part xpath query. </summary>
</part>
</selectionFailure>
Please help me.
Thanks in advance.
Regards,
SaraLet us know if you have customized SOA composite for user creation approval?
-Vamsi. -
XPath query string returns zero node...
Hi,
I try to filling value of node's in "java embedding" activity, but i got Subj. error.
Text java code is :
setVariableData("MesAQ_Enqueue_Variable", "Soob", "/ns2:Soob/ns2:CtrlFraseAsProps/ns2:Field[2]/ns2:npp", "12345");
I know, node with index 2 not exist, but where i can add it, before set value ?
Thanks
Evgeniy<copy>
<from expression="ora:addChildNode(bpws:getVariableData("output", "payload", "/tns:bpelResponse/tns:results"), bpws:getVariableData('testResult'))"></from>
<to variable="output" part="payload" query="/tns:bpelResponse/tns:results"/>
</copy>
It adds the object testResult into the array results and then saves the updated array back into results.
There are tutorials on this that should either come installed with BPEL, or there are also ones on Oracle's site here, if you need to see more complete examples of array usage. -
Workspace Error executing query: String index out of range: -39
I am running a Financial Reporting Book.
When running this book, I am receiving the following error.
Error executing query: String index out of range: -39
What does this mean?
And how do I fix this?
Thank you,
DanThis is happening to a single Financial Reporting book.
Oracle suggested changing the Data Query Optimization settings.
I had checked on Essbase Queries Use MDX on all the reports being called into the book.
Oracle suggested that I uncheck this box.
This did not do the trick.
I ran the reports individually, and they all worked.
I am stumped. -
Query is returning multiple records for a bank account id and party id
Hi All,
I am not getting why this query is returning multiple records for a particular bank account id and party id:
SELECT instrument_payment_use_id
,instrument_type
,instrument_id
,start_date
,ext_pmt_party_id
FROM iby_pmt_instr_uses_all
WHERE instrument_id =:lv_num_ext_bank_account_id
and exists (select 1 from iby_external_payees_all b where PAYEE_PARTY_ID= :lv_num_party_id and b.ext_payee_id = ext_pmt_party_id)
I want above values to be used in api iby_disbursement_setup_pub.set_payee_instr_assignment in R12.
Please help asap.
ThanksO/P of query run for
SELECT rowid, instrument_payment_use_id
FROM iby_pmt_instr_uses_all
WHERE instrument_id =6642
AND EXISTS (
SELECT 1
FROM iby_external_payees_all b
WHERE payee_party_id= 85470
AND b.ext_payee_id = ext_pmt_party_id);
is below:
Rowid INSTRUMENT_PAYMENT_USE_ID
AABiDXAGIAABhiKAAS 236586
AABiDXAGRAABSjtAAz 148437
The version is R12 -
Xpath Query to find parent nodes
My XMl is like this
<UserAgent1>
<Name>QTS </Name>
<NetworkFamily>GSM</NetworkFamily>
<NetworkSupportedMap>0x06</NetworkSupportedMap>
</UserAgent1>
<UserAgent2>
<Name>QuickTime</Name>
<NetworkFamily>GSM</NetworkFamily>
<NetworkSupportedMap>0x06</NetworkSupportedMap>
</UserAgent2>
Now if they give a search String like "GSM" without specifying any tag
Then i use the xpath query
//*[contains(text(),'GSM')]
This will give me the child element <NetworkFamily>GSM</NetworkFamily> . .and with this i will find out the parent element which is <UserAgent1> & <UserAgent2>
IS there any query which will give me directly the Parent Nodes whose childnodes contain the given text ?Well, of course there is. But I couldn't remember how so I googled the keywords "xpath parent". The first link that came back suggested
//*[contains(text(),'GSM')]/..
and the second suggested the parent axis
parent::(//*[contains(text(),'GSM')]) or maybe //parent::*[contains(text(),'GSM')]
So yes, there's several ways. And they were easy to find with Google too. -
Image Import Error "No query results returned"
Hi All,
I have the problem while importing images, several image have not been imported with this error.
Log:
Importing [German [DE]] '205865_logo.jpg'...failed.
Import complete
Error:
E:\images\205865\h-jpeg\205865_logo.jpg: No query results returned
Altogether I have imported 17000 Images. 16998 have been successful and 2 throw this error. Anybody an idea what this means and how to avoid it?
Best Regards
Roman
Edited by: Roman Becker on Mar 8, 2009 1:14 PMHi Roman,
I assume you import the images to a catalog, dont you?
Which catalog do you use? MDM or CCM?
Daniel -
Updating a table with a query that return multiple values
Hi,
I'm trying to update a table which contain these fields : ItemID, InventoryID, total amounts
with a query that return these values itemId, inventoryid and total amounts for each items
Mind you, not all the rows in the table need to be updated. only a few.
This what i wrote but doesn't work since the query return multiple values so i can't assign it to journalAmounts.
UPDATE [bmssa].[etshortagetemp]
SET JournalAmounts = (SELECT sum(b.BomQty) FROM [bmssa].[Bom] b
JOIN [bmssa].[SalesLine] sl ON sl.ItemBomId = b.BomId
JOIN [bmssa].[SalesTable] st ON st.SalesId = sl.SalesId
WHERE st.SalesType = 0 AND (st.SalesStatus IN (0,1,8,12,13)) AND st.DataAreaId = 'sdi'
GROUP BY b.itemid, b.inventdimid)
Any advise how to do this task?Remember that link to the documentation posted above that explains exactly how to do this. When you read it which part exactly were you having trouble with?
-
Hi all,
I've a requirement where in I've to get multiple rows from a query.
The resultset should be something like this:
SELECT A
FROM dual;
A
1
2
3
4
5
6
7
8
9
10
Thanks in anticipation
RK RajuI'm not completely certain I understand the question. Just in case you're asking for something as simple as this ...
select rownum from all_objects where rownum <= 10;You didn't say what version you were using either (shame on you). You could use a collection or a pipeline depending on your version ...
create or replace type ttab_number is table of number;
create or replace function f_collection
return ttab_number is
tab_number ttab_number := ttab_number();
begin
for i in 1 .. 10 loop
tab_number.extend;
tab_number(tab_number.count) := i;
end loop;
return tab_number;
end f_collection;
select *
from table(f_collection)
create or replace function f_pipeline
return ttab_number
pipelined is
begin
for i in 1 .. 10 loop
pipe row(i);
end loop;
return;
end f_pipeline;
show errors
select *
from table(f_pipeline) -
Error single row subquery returns multiple values
Hi All,
I have a below query. This is query is throwiing error like single row subquery is returing more than number of records. That subquery is in my SELECT statement query. I have a value like 'tests'. That test contains more than one record. I am fetching that 'tests' child values from this query. If the test contains only one child at that time it is working fine. Can anyone share with how update this query?
SELECT
czpn.FEATURE_TYPE,
czci.PS_NODE_NAME,
DECODE(czci.VALUE_TYPE_CODE,2,czci.ITEM_VAL,
3, NVL((SELECT
lines_config.PS_NODE_NAME
FROM
CZ_CONFIG_ITEMS lines_config
WHERE
lines_config.PARENT_CONFIG_ITEM_ID = czci.CONFIG_ITEM_ID
AND lines_config.CONFIG_HDR_ID = czci.CONFIG_HDR_ID
AND lines_config.CONFIG_REV_NBR = czci.CONFIG_REV_NBR),
DECODE(czci.ITEM_NUM_VAL,1,'',czci.ITEM_NUM_VAL)),
0,NVL(czci.ITEM_NUM_VAL,'')) NODE_VALUE
FROM
CZ_CONFIG_ITEMS czci,
CZ_PS_NODES czpn
WHERE
czpn.PERSISTENT_NODE_ID = czci.PS_NODE_ID
AND czci.CONFIG_HDR_ID = 1827349
AND czci.CONFIG_REV_NBR = 1
--AND czci.VALUE_TYPE_CODE <> 4
AND czpn.FEATURE_TYPE IS NOT NULL
--AND czci.PS_NODE_ID = 356474
AND czpn.DEVL_PROJECT_ID = (SELECT MAX(ps_devl1.DEVL_PROJECT_ID) FROM CZ_DEVL_PROJECTS ps_devl1, CZ_PS_NODES ps_devl, CZ_CONFIG_ITEMS ps_config_sub
WHERE (ps_devl.PERSISTENT_NODE_ID = ps_config_sub.PS_NODE_ID
AND ps_config_sub.PARENT_CONFIG_ITEM_ID = (SELECT ps_config_sub1.CONFIG_ITEM_ID FROM CZ_CONFIG_ITEMS ps_config_sub1
WHERE ps_config_sub.CONFIG_HDR_ID = ps_config_sub1.CONFIG_HDR_ID
AND ps_config_sub.CONFIG_REV_NBR = ps_config_sub1.CONFIG_REV_NBR
AND ps_config_sub1.PS_NODE_NAME = 'ACCESSORIES'))
AND ps_devl1.DEVL_PROJECT_ID = ps_devl.REFERENCE_ID
AND ps_config_sub.CONFIG_HDR_ID = czci.CONFIG_HDR_ID
AND ps_config_sub.CONFIG_REV_NBR = czci.CONFIG_REV_NBR)
AND czci.PS_NODE_NAME = 'tests'ThanksHello,
This should work:
SELECT
czpn.FEATURE_TYPE,
czci.PS_NODE_NAME,
DECODE(czci.VALUE_TYPE_CODE,2,czci.ITEM_VAL,
3, NVL((SELECT
lines_config.PS_NODE_NAME
FROM
CZ_CONFIG_ITEMS lines_config
WHERE
lines_config.PARENT_CONFIG_ITEM_ID = czci.CONFIG_ITEM_ID
AND lines_config.CONFIG_HDR_ID = czci.CONFIG_HDR_ID
AND lines_config.CONFIG_REV_NBR = czci.CONFIG_REV_NBR
AND ROWNUM <= 1),
DECODE(czci.ITEM_NUM_VAL,1,'',czci.ITEM_NUM_VAL)),
0,NVL(czci.ITEM_NUM_VAL,'')) NODE_VALUE
FROM
CZ_CONFIG_ITEMS czci,
CZ_PS_NODES czpn
WHERE
czpn.PERSISTENT_NODE_ID = czci.PS_NODE_ID
AND czci.CONFIG_HDR_ID = 1827349
AND czci.CONFIG_REV_NBR = 1
--AND czci.VALUE_TYPE_CODE 4
AND czpn.FEATURE_TYPE IS NOT NULL
--AND czci.PS_NODE_ID = 356474
AND czpn.DEVL_PROJECT_ID = (SELECT MAX(ps_devl1.DEVL_PROJECT_ID) FROM CZ_DEVL_PROJECTS ps_devl1, CZ_PS_NODES ps_devl, CZ_CONFIG_ITEMS ps_config_sub
WHERE (ps_devl.PERSISTENT_NODE_ID = ps_config_sub.PS_NODE_ID
AND ps_config_sub.PARENT_CONFIG_ITEM_ID = (SELECT ps_config_sub1.CONFIG_ITEM_ID FROM CZ_CONFIG_ITEMS ps_config_sub1
WHERE ps_config_sub.CONFIG_HDR_ID = ps_config_sub1.CONFIG_HDR_ID
AND ps_config_sub.CONFIG_REV_NBR = ps_config_sub1.CONFIG_REV_NBR
AND ps_config_sub1.PS_NODE_NAME = 'ACCESSORIES'))
AND ps_devl1.DEVL_PROJECT_ID = ps_devl.REFERENCE_ID
AND ps_config_sub.CONFIG_HDR_ID = czci.CONFIG_HDR_ID
AND ps_config_sub.CONFIG_REV_NBR = czci.CONFIG_REV_NBR)
AND czci.PS_NODE_NAME = 'tests'Where this is restricting the records returned by your columnar subquery to one record with ROWNUM. -
Trying to do something as data would be uploaded and edited in grid. At present I am using Ora_Hash.
SELECT
e.ROWID, e.Employee_Id,e.First_Name,e.Last_Name,e.Email,e.Phone_Number,e.Hire_Date,
e.Job_Id,e.Salary,e.Manager_Id,e.Department_Id,
owa_opt_lock.checksum('HR','EMPLOYEES', e.rowid) As HashForThisRow
FROM EMPLOYEES e;
ThxNo you can't.
owa_opt_lock.checksum is a function which is used for optimist locking. It locks the row(probably by using Select FOR Update mechanism) which you select and which you are trying to update. As a result, what you are eventually trying to do is that inside a Select query you are using a function that is locking the rows, which is not allowed. And thus your query will fail with the below mentioned error.
ORA-14551: cannot perform a DML operation inside a query
ORA-06512: at "SYS.DBMS_SQL", line 1575
ORA-06512: at "SYS.OWA_OPT_LOCK", line 172
14551. 00000 - "cannot perform a DML operation inside a query "
*Cause: DML operation like insert, update, delete or select-for-update
cannot be performed inside a query or under a PDML slave.
*Action: Ensure that the offending DML operation is not performed or
use an autonomous transaction to perform the DML operation within
the query or PDML slave.
Thanks,
Ishan -
SQL Query to return multiple transactions in a 5 min. period
I have been asked to write a query that scans a table of financial transactions looking for more than 1 transaction by the same person (EmplID for example) within a 5 minute period. I am not sure if this is possible with SQL. Here are the details:
Table = MEALTRANSLEDGER
Relevant Columns:
"TRANDATE" DATE,
"EMPLID" NUMBER(9,0)
I need to select these columns when a particular EmplID has logged more than 1 transaction in a 5 minute period.
I know I could do this with PL/SQL or Perl by stepping through the rows of the table and calculating date differences, but I would really like to know if SQL could do it.
Thanks for the help.
Version Info:
SQL> select * from v$version where banner like 'Oracle%';
BANNER
Oracle Database 10g Release 10.2.0.4.0 - ProductionYou can use something along these lines to determine the minutes difference between transactions...
SQL> ed
Wrote file afiedt.buf
1 with t as (select 1 as emplid, to_date('01/01/2010 09:00:00', 'DD/MM/YYYY HH24:MI:SS') as trandate from dual union all
2 select 1, to_date('01/01/2010 09:10:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
3 select 1, to_date('01/01/2010 09:20:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
4 select 1, to_date('01/01/2010 09:45:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
5 select 1, to_date('01/01/2010 09:51:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
6 select 2, to_date('01/01/2010 09:12:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
7 select 2, to_date('01/01/2010 09:18:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
8 select 2, to_date('01/01/2010 09:22:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
9 select 2, to_date('01/01/2010 09:30:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
10 select 3, to_date('01/01/2010 09:05:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
11 select 3, to_date('01/01/2010 10:10:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
12 select 3, to_date('01/01/2010 11:15:00', 'DD/MM/YYYY HH24:MI:SS') from dual
13 )
14 --
15 select emplid, trandate
16 ,(trandate-lag(trandate) over (partition by emplid order by trandate)) * (24*60) as mins_diff
17 from t
18* order by emplid, trandate
SQL> /
EMPLID TRANDATE MINS_DIFF
1 01/01/2010 09:00:00
1 01/01/2010 09:10:00 10
1 01/01/2010 09:20:00 10
1 01/01/2010 09:45:00 25
1 01/01/2010 09:51:00 6
2 01/01/2010 09:12:00
2 01/01/2010 09:18:00 6
2 01/01/2010 09:22:00 4
2 01/01/2010 09:30:00 8
3 01/01/2010 09:05:00
3 01/01/2010 10:10:00 65
3 01/01/2010 11:15:00 65
12 rows selected.And then you can wrap that up to just highlight the problem ones...
SQL> ed
Wrote file afiedt.buf
1 with t as (select 1 as emplid, to_date('01/01/2010 09:00:00', 'DD/MM/YYYY HH24:MI:SS') as trandate from dual union all
2 select 1, to_date('01/01/2010 09:10:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
3 select 1, to_date('01/01/2010 09:20:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
4 select 1, to_date('01/01/2010 09:45:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
5 select 1, to_date('01/01/2010 09:51:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
6 select 2, to_date('01/01/2010 09:12:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
7 select 2, to_date('01/01/2010 09:18:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
8 select 2, to_date('01/01/2010 09:22:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
9 select 2, to_date('01/01/2010 09:30:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
10 select 3, to_date('01/01/2010 09:05:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
11 select 3, to_date('01/01/2010 10:10:00', 'DD/MM/YYYY HH24:MI:SS') from dual union all
12 select 3, to_date('01/01/2010 11:15:00', 'DD/MM/YYYY HH24:MI:SS') from dual
13 )
14 --
15 select emplid, trandate
16 from (
17 select emplid, trandate
18 ,(trandate-lag(trandate) over (partition by emplid order by trandate)) * (24*60) as mins_diff
19 from t
20 )
21 where mins_diff <= 5
22* order by emplid, trandate
SQL> /
EMPLID TRANDATE
2 01/01/2010 09:22:00
SQL> -
UPDATE statement based on query and return multiple value
Hi everybody,
I have two tables: temp3 and temp
One of them (temp3) should be updated based on the query where clause (id and flag columns).
I run this query but it updates all of the records in the temp3. I want to update only records with 'UPDATED' flag.
update temp3 t3
set (id,name,address) = (select t.id, t.name, t.address from temp t, temp3 t3
where t.id = t3.id and t.flag = 'UPDATED');
Does any body know how I can do it?
I appreciate your help
ThxHello
Basically you're missing a where clause on your update statement to restrict rows in t3 to the ones that have a corresponding row in t1.
SQL> select * from dt_test_t1;
ID NAME ADDRESS ROW_STATUS
1 Joseph Bloggs Some street UPDATED
1 Joe Bloggs Old street OLD
2 Fredrick Bloggs New street UPDATED
2 Fred Bloggs Some street OLD
3 Robert Bloggs Better street UPDATED
3 Bob Bloggs Some street OLD
100 Barry Bethel Some street UPDATED
200 Giles Brandreth Some street UPDATED
8 rows selected.
SQL> select * from dt_test_t3;
ID NAME ADDRESS ROW_STATUS
1 Joe Bloggs Old street
2 Fred Bloggs Some street
3 Bob Bloggs Some street
4 Joe Smith Some street
5 John Doe Some street
--this update as it stands does not work as it updates rows to have
--null name and address where there is not a proper matching row in
--t1
SQL> UPDATE
2 dt_test_t3 t3
3 SET
4 ( t3.name,
5 t3.address,
6 t3.row_status
7 ) = (SELECT
8 t1.name,
9 t1.address,
10 t1.row_status
11 FROM
12 dt_test_t1 t1
13 WHERE
14 t1.id = t3.id
15 AND
16 t1.row_status = 'UPDATED'
17 );
5 rows updated.
SQL> select * from dt_test_t3;
ID NAME ADDRESS ROW_STATUS
1 Joseph Bloggs Some street UPDATED
2 Fredrick Bloggs New street UPDATED
3 Robert Bloggs Better street UPDATED
4
5
SQL> rollback;
Rollback complete.
--Now add in the where clause to make sure we're only updating rows in
--t3 that have a corresponding row in t1:
SQL> UPDATE
2 dt_test_t3 t3
3 SET
4 ( t3.name,
5 t3.address,
6 t3.row_status
7 ) = (SELECT
8 t1.name,
9 t1.address,
10 t1.row_status
11 FROM
12 dt_test_t1 t1
13 WHERE
14 t1.id = t3.id
15 AND
16 t1.row_status = 'UPDATED'
17 )
18 WHERE
19 EXISTS( SELECT
20 NULL
21 FROM
22 dt_test_t1 t1
23 WHERE
24 t1.id = t3.id
25 AND
26 t1.row_status = 'UPDATED'
27 );
3 rows updated.
SQL> select * from dt_test_t3;
ID NAME ADDRESS ROW_STATUS
1 Joseph Bloggs Some street UPDATED
2 Fredrick Bloggs New street UPDATED
3 Robert Bloggs Better street UPDATED
4 Joe Smith Some street
5 John Doe Some streetHTH
David -
XPath query error - xml extension in schema
Hi,
I am getting following error when i try to assign values to input xml payload before
invoke process.
"{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure" has been thrown.
<selectionFailure>
<part name="summary" >
<summary>XPath query string returns multiple nodes. According to BPEL4WS spec 1.1 section 14.3, The assign activity part and query /child::parameter/child::param1 should not return multipe nodes. Please check the BPEL source at line number "40" and verify the part and xpath query /child::parameter/child::param1. </summary>
</part>
</selectionFailure>
The generated XPath resolves to a single node only (tested using XMLSpy). The only reason i can think of is that the xml schema in wsdl is extending a base xml type to a new type.
It works fine if the extending xml type is merged with it's base type, and used as one single complex type.
------------------WSDL START
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://justdoit.ws.sunflower2.pageone.com" targetNamespace="http://justdoit.ws.sunflower2.pageone.com">
<types>
<xs:schema targetNamespace="http://justdoit.ws.sunflower2.pageone.com">
<xs:complexType abstract="true" name="BaseObject">
<xs:sequence>
<xs:element name="param1" nillable="true" type="xs:string"/>
<xs:element name="param2" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FooBar">
<xs:complexContent>
<xs:extension base="tns:BaseObject">
<xs:sequence>
<xs:element name="param3" nillable="true" type="xs:string"/>
<xs:element name="param4" nillable="true" type="xs:string"/>
<xs:element name="param5" nillable="true" type="xs:string"/>
<xs:element name="param6" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
</types>
<message name="justDoItRequest">
<part name="parameter" type="tns:FooBar"/>
</message>
<message name="justDoItResponse">
<part name="parameter" type="tns:FooBar"/>
</message>
<portType name="justDoItPort">
<operation name="justDoIt">
<input message="tns:justDoItRequest"/>
<output message="tns:justDoItResponse"/>
</operation>
</portType>
<binding name="justDoItBinding" type="tns:justDoItPort">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="justDoIt">
<soap:operation soapAction="tns:justDoIt"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="justDoItService">
<port name="NewPort" binding="tns:justDoItBinding">
<soap:address location="http://127.0.0.1:8080/axis/services/justDoIt"/>
</port>
</service>
</definitions>
------------------WSDL END
------------------BPEL START
<assign name="assign-1">
<copy>
<from variable="input" part="payload" query="/tns:justDoItRequest/tns:input1"></from>
<to variable="req" part="parameter" query="/parameter/param1"/>
</copy>
</assign>
<invoke name="invoke-1" partnerLink="justDoIt" portType="tns:justDoItPort" operation="justDoIt" inputVariable="req" outputVariable="res"/>
------------------BPEL END
reg,
Amitoj.I am also having the xml extension issue and since we are dealing with large WSDL files (exceed 40,000 lines) it would be ridiculous to move all extension classes to the base type (parent class). Has this bugged been looked at and when can it be resolved since it seems to be a major issue in JDeveloper.
Chris
Maybe you are looking for
-
How is it possible for Adobe Support to be so bad ?
I mean really ! For a multi billion dollar company, support is worse than Microsoft ! And that speaks heaps ! I had the worst customer experience throughout the day with people that have no grasp over the english language and moreso, no technical ski
-
Info needed on how to get list price for a given MATNR and pricing Conditio
Hi All, Can some one help me in finding List price for a given MATNR and pricing condition type. Basically, i need info regarding the tables that i need to use for this purpose. Thanks in advance. Regards, Udaya. PS: All helpful answers will be rewar
-
Open a new window on clicking the CommandButton in JSF
Hi, I have a page and two <h:form> in that page. The second <h:form> just has a date field and a Submit button. Selecting a date and clicking the CommandButton should open the report in a new window. If no reports found then a msg needs to be display
-
Error In Instance Tab of ESB console
Hi all, After restarting the SOA server, when i tried opening the 'Instance' Tab i get the following error. An unhandled exception has been thrown in the ESB system. The exception reported is: "java.lang.NullPointerException at oracle.tip.esb.console
-
Xserve Raid - Devicer Removal Error ?!
Hi ! Can anybody help me ? Whenever I copy some files from my Macintosh HD on my G5 to Xserve Raid 30 seconds after start copy process stops and I get an Device Removal error. I have traid everything and I can't get it right. BTW is my setup ok ? App