Read data from CLOB field
Hello,
I have table ( table1 ) with clob field ( clob1 ).
Content of clob1 field is :
data01 data02 data03 12345 data04
data05 data06 data07 32131 data08
data09 data10 data11 43422 data12
data13 data14 data15 54534 data16
Content of clob1 field is imported from ASCII file. Number of records in ASCII file is variable.
How can I read each row separately from clob1 field?
Thanks
Here is an example of how it can be done.
Note you will have to have an end of line marker on each line including the last line.
In my case I have used the '@' symbol as a line delimiter
declare
v_clob clob := 'This is my@clob string which@is over a number@of lines@';
v_clob_length number;
v_read_pos number := 1;
v_subclob clob;
v_line varchar2(4000);
v_marker number;
begin
v_clob_length := dbms_lob.getlength(v_clob);
while v_read_pos <= v_clob_length
loop
v_subclob := empty_clob();
-- make a clob of the smaller piece of data
v_subclob := dbms_lob.substr(v_clob,v_clob_length,v_read_pos);
-- find the position of the end of line marker
v_marker := dbms_lob.instr(v_subclob,'@');
-- build a line from the subclob, removing the trailing end of line marker
v_line := dbms_lob.substr(v_subclob,v_marker-1,1);
dbms_output.put_line(v_line);
-- increment the position from where to start reading the original clob
v_read_pos := v_read_pos+length(v_line)+1;
end loop;
end;This produces the following
This is my
clob string which
is over a number
of lines
Similar Messages
-
Error reading data from CLOB column into VARCHAR2 variable
Hi all,
Am hitting an issue retrieving data > 8K (minus 1) stored in a CLOB column into a VARCHAR2 variable in PL/SQL...
The "problem to be solved" here is storing DDL, in this case a "CREATE VIEW" statement, that is longer than 8K for later retrieval (and execution) using dynamic SQL. Given that the EXECUTE IMMEDIATE statement can take a VARCHAR2 variable (up to 32K(-1)), this should suffice for our needs, however, it seems that somewhere in the process of converting this VARCHAR2 text to a CLOB for storage, and then retrieving the CLOB and attempting to put it back into a VARCHAR2 variable, it is throwing a standard ORA-06502 exception ("PL/SQL: numeric or value error"). Consider the following code:
set serveroutput on
drop table test1;
create table test1(col1 CLOB);
declare
cursor c1 is select col1 from test1;
myvar VARCHAR2(32000);
begin
myvar := '';
for i in 1..8192 loop
myvar := myvar || 'a';
end loop;
INSERT INTO test1 (col1) VALUES (myvar);
for arec in c1 loop
begin
myvar := arec.col1;
dbms_output.put_line('Read data of length ' || length(myvar));
exception when others then
dbms_output.put_line('Error reading data: ' || sqlerrm);
end;
end loop;
end;
If you change the loop upper bound to 8191, all works fine. I'm guessing this might have something to do with the database character set -- we've recently converted our databases over to UTF-8, for Internationalizion support, and that seems to have changed underlying assumptions regarding character processing...?
As far as the dynamic SQL issue goes, we can probably use the DBMS_SQL interface instead, with it's EXECUTE procedure that takes a PL/SQL array of varchar2(32K) - the only issue there is reading the data from the CLOB column, and then breaking that data into an array but that doesn't seem insurmountable. But this same basic issue (when a 9K text block, let's say, turns into a >32K block after being CLOBberred) seems to comes up in other text-processing situations also, so any ideas for how to resolve would be much appreciated.
Thanks for any tips/hints/ideas...
JimFor those curious about this, here's the word from Oracle support (courtesy of Metalinks):
RESEARCH
========
Test the issue for different DB version and different characterset.
--Testing the following PL/SQL blocks by using direct assignment method(myvar := arec.col1;) on
different database version and different characterset.
SQL>create table test1(col1 CLOB);
--Inserting four CLOB data into test1.
declare
myvar VARCHAR2(32767);
begin
myvar := RPAD('a',4000);
INSERT INTO test1 (col1) VALUES (myvar);
myvar := RPAD('a',8191);
INSERT INTO test1 (col1) VALUES (myvar);
myvar := RPAD('b',8192);
INSERT INTO test1 (col1) VALUES (myvar);
myvar := RPAD('c',32767);
INSERT INTO test1 (col1) VALUES (myvar);
commit;
end;
--Testing the direct assignment method.
declare
cursor c1 is select col1, length(col1) len1 from test1;
myvar VARCHAR2(32767);
begin
for arec in c1 loop
myvar := arec.col1;
--DBMS_LOB.READ(arec.col1, arec.len1, 1, myvar);
dbms_output.put_line('Read data of length: ' || length(myvar));
end loop;
end;
The following are the summary of the test results:
===================================
1. If the database characterset is WE8ISO8859P1, then the above direct assignment
method(myvar := arec.col1;) works for database version 9i/10g/11g without any
errors.
2. If the database characterset is UTF8 or AL32UTF8, then the above direct assignment method(myvar := arec.col1;) will generate the "ORA-06502:
PL/SQL: numeric or value error" when the length of the CLOB data is greater
than 8191(=8K-1). The same error can be reproduced across all database versions
9i/10g/11g.
3. Using DBMS_LOB.READ(arec.col1, arec.len1, 1, myvar) method to read CLOB data into a VARCHAR2 variable works for both WE8ISO8859P1 and UTF8
characterset and for all database versions.
So - it seems as I'd surmised, UTF8 changes the way VARCHAR2 and CLOB data is handled. Not too surprising, I suppose - may you all be lucky enough to be able to stay away from this sort of issue. But - the DBMS_LOB.READ workaround is certainly sufficient for the text processing situations we find ourselves in currently.
Cheers,
Jim C. -
i want to read from 4 fields of a form, concatenate it and write them into once field and write in one column in database..how to
I am getting data from the table Pt_types. The columns are pt_a, pt_b, pt_c, pt_d.
PURPOSE of the form: the viewer will select the types and press submit.
Next action: To submit the four fields (pt_a, pt_b, pt_c, pt_d.) into the column (pt_eq) in the table problem.
This is done to keep record of the reports entered by the staff. The (problem) table provides information to generate report, for maintainance.
..Did you understand what I want to do?
Please let me know if you need more information.
Thanx cardwellcupp... -
How to retrieve data from a field of CLOB datatype?
How can I retrieve data from a field of CLOB datatype in Oracle
8 being called from an ASP or VB application? The recordset
object in ASP or VB doesn't support the CLOB datatype.
Thank you in advance for your help.How can I retrieve data from a field of CLOB datatype in Oracle
8 being called from an ASP or VB application? The recordset
object in ASP or VB doesn't support the CLOB datatype.
Thank you in advance for your help. Hello.. were you able to solve your problem? I'm faced with pretty much the same task.. I have a VBA application that needs to pull various pieces of data(CLOBs, BLOBs, etc..) from an Oracle8i db. -
Returned data from database field having data type CLOB
hi..
i hv table having CLOB field type ... having 12000 char length ... data is present in the field... but when i do select on that field it only returns the limited data from that field for any given row...
pls let me know wuts may b the problem...
cheeerrss..Are you running the select from SQL*Plus? If so check out the [SET LONG|http://download.oracle.com/docs/cd/B19306_01/server.102/b14357/ch12040.htm#sthref2800] parameter.
HTH! -
Reading data from BSEG table with Non-key fields in where clause
Hi All,
I have to read data from BSEG table based on WBS element field (PROJK). As I'm not passing key fields to WHERE clause system couldnt run the select statement. Since BSEG is a cluster table I cant even create secondary index on PROJK field.
Could you please tell me, how to improve its performance.
Regards
Jaker.SELECT bukrs
belnr
gjahr
shkzg
dmbtr
hkont
lifnr
matnr
werks
menge
meins
ebeln
FROM bseg
INTO TABLE it_bseg
PACKAGE SIZE 10
FOR ALL ENTRIES IN it_final
WHERE bukrs EQ it_final-bukrs
AND belnr EQ it_final-belnr
AND gjahr EQ it_final-gjahr
AND buzei EQ it_final-buzei
AND hkont EQ it_final-hkont
AND werks IN s_werks.
By using package and fetch from BSEG table. gathering all other information to a final internal table.This will reduce the hit to database.And also try to put that data in hashed internal table which is it_bseg....then definetly improve the performance.
<REMOVED BY MODERATOR>
Dara.
Edited by: Alvaro Tejada Galindo on Apr 21, 2008 12:47 PM -
I have column (CLOB data type) with XML data in it. How to read data from that column and insert into myTable? This XML represent one report divided by Location. Every location has analytic data and total at the end.
How to get something like this:
bilbo bagins Total BBB (tran: 6) 12.00 13.00 14.10
bilbo bagins Total EEE (tran: 2) 12.50 44.59 72.52
bilbo bagins Total bilbo bagins (tran: 8) 34.89 17.85
Data in CLOB column:
<?xml version="1.0" encoding="UTF-8" ?>
<CrystalReport xmlns="urn:crystal-reports:schemas:report-detail" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:crystal-reports:schemas:report-detail http://www.businessobjects.com/products/xml/CR2008Schema.xsd">
<ReportHeader>
<Section SectionNumber="0">
</Section>
</ReportHeader>
<Group Level="1">
<GroupHeader>
<Section SectionNumber="0">
<Field Name="GroupNameLocation1" FieldName="GroupName ({SubAgentSettlement.Location})"><FormattedValue>bilbo bagins</FormattedValue><Value>bilbo bagins</Value></Field>
</Section>
</GroupHeader>
<Group Level="2">
<GroupHeader>
<Section SectionNumber="0">
</Section>
</GroupHeader>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<GroupFooter>
<Section SectionNumber="0">
<Field Name="GroupFooterText1" FieldName="{@GroupFooterText}"><FormattedValue>Total BBB (tran: 6)</FormattedValue><Value>Total BBB (tran: 6)</Value></Field>
<Field Name="SumofCommission1" FieldName="Sum ({SubAgentSettlement.Commission}, {SubAgentSettlement.Currency})"><FormattedValue>12.00</FormattedValue><Value>12.00</Value></Field>
<Field Name="SumofCommissionBbb1" FieldName="Sum ({SubAgentSettlement.CommissionBBB}, {SubAgentSettlement.Currency})"><FormattedValue>13.00</FormattedValue><Value>13.00</Value></Field>
<Field Name="SumofCommissionEee1" FieldName="Sum ({SubAgentSettlement.CommissionEEE}, {SubAgentSettlement.Currency})"><FormattedValue>14.10</FormattedValue><Value>14.10</Value></Field>
</Section>
</GroupFooter>
</Group>
<Group Level="2">
<GroupHeader>
<Section SectionNumber="0">
</Section>
</GroupHeader>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<GroupFooter>
<Section SectionNumber="0">
<Field Name="GroupFooterText1" FieldName="{@GroupFooterText}"><FormattedValue>Total EEE (tran: 2)</FormattedValue><Value>Total EEE (tran: 2)</Value></Field>
<Field Name="SumofCommission1" FieldName="Sum ({SubAgentSettlement.Commission}, {SubAgentSettlement.Currency})"><FormattedValue>12.50</FormattedValue><Value>12.50</Value></Field>
<Field Name="SumofCommissionBbb1" FieldName="Sum ({SubAgentSettlement.CommissionBBB}, {SubAgentSettlement.Currency})"><FormattedValue>44.59</FormattedValue><Value>44.59</Value></Field>
<Field Name="SumofCommissionEee1" FieldName="Sum ({SubAgentSettlement.CommissionEEE}, {SubAgentSettlement.Currency})"><FormattedValue>72.52</FormattedValue><Value>72.52</Value></Field>
</Section>
</GroupFooter>
</Group>
<GroupFooter>
<Section SectionNumber="0">
<Field Name="LocationGroupFooterText1" FieldName="{@LocationGroupFooterText}"><FormattedValue>Total bilbo bagins (tran: 8)</FormattedValue><Value>Total bilbo bagins (tran: 8)</Value></Field>
<Field Name="SumofCommissionBbb2" FieldName="Sum ({SubAgentSettlement.CommissionBBB}, {SubAgentSettlement.Location})"><FormattedValue>34.89</FormattedValue><Value>34.89</Value></Field>
<Field Name="SumofCommissionEee2" FieldName="Sum ({SubAgentSettlement.CommissionEEE}, {SubAgentSettlement.Location})"><FormattedValue>17.85</FormattedValue><Value>17.85</Value></Field>
</Section>
</GroupFooter>
</Group>
<Group Level="1">
<GroupHeader>
<Section SectionNumber="0">
<Field Name="GroupNameLocation1" FieldName="GroupName ({SubAgentSettlement.Location})"><FormattedValue>Bruce Lee</FormattedValue><Value>Bruce Lee</Value></Field>
</Section>
</GroupHeader>
<Group Level="2">
<GroupHeader>
<Section SectionNumber="0">
</Section>
</GroupHeader>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<GroupFooter>
<Section SectionNumber="0">
<Field Name="GroupFooterText1" FieldName="{@GroupFooterText}"><FormattedValue>Total BBB (tran: 5)</FormattedValue><Value>Total BBB (tran: 5)</Value></Field>
<Field Name="SumofCommission1" FieldName="Sum ({SubAgentSettlement.Commission}, {SubAgentSettlement.Currency})"><FormattedValue>18.11</FormattedValue><Value>18.11</Value></Field>
<Field Name="SumofCommissionBbb1" FieldName="Sum ({SubAgentSettlement.CommissionBBB}, {SubAgentSettlement.Currency})"><FormattedValue>3.24</FormattedValue><Value>3.24</Value></Field>
<Field Name="SumofCommissionEee1" FieldName="Sum ({SubAgentSettlement.CommissionEEE}, {SubAgentSettlement.Currency})"><FormattedValue>1.33</FormattedValue><Value>1.33</Value></Field>
</Section>
</GroupFooter>
</Group>
<Group Level="2">
<GroupHeader>
<Section SectionNumber="0">
</Section>
</GroupHeader>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<GroupFooter>
<Section SectionNumber="0">
<Field Name="GroupFooterText1" FieldName="{@GroupFooterText}"><FormattedValue>Total EEE (tran: 8)</FormattedValue><Value>Total EEE (tran: 8)</Value></Field>
<Field Name="SumofCommission1" FieldName="Sum ({SubAgentSettlement.Commission}, {SubAgentSettlement.Currency})"><FormattedValue>10.17</FormattedValue><Value>10.17</Value></Field>
<Field Name="SumofCommissionBbb1" FieldName="Sum ({SubAgentSettlement.CommissionBBB}, {SubAgentSettlement.Currency})"><FormattedValue>7.62</FormattedValue><Value>7.62</Value></Field>
<Field Name="SumofCommissionEee1" FieldName="Sum ({SubAgentSettlement.CommissionEEE}, {SubAgentSettlement.Currency})"><FormattedValue>1.53</FormattedValue><Value>1.53</Value></Field>
</Section>
</GroupFooter>
</Group>
<Group Level="2">
<GroupHeader>
<Section SectionNumber="0">
</Section>
</GroupHeader>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<GroupFooter>
<Section SectionNumber="0">
<Field Name="GroupFooterText1" FieldName="{@GroupFooterText}"><FormattedValue>Total UUU (transactions: 7)</FormattedValue><Value>Total UUU (transactions: 7)</Value></Field>
<Field Name="SumofCommission1" FieldName="Sum ({SubAgentSettlement.Commission}, {SubAgentSettlement.Currency})"><FormattedValue>2.01</FormattedValue><Value>2.01</Value></Field>
<Field Name="SumofCommissionBbb1" FieldName="Sum ({SubAgentSettlement.CommissionBBB}, {SubAgentSettlement.Currency})"><FormattedValue>3.71</FormattedValue><Value>3.71</Value></Field>
<Field Name="SumofCommissionEee1" FieldName="Sum ({SubAgentSettlement.CommissionEEE}, {SubAgentSettlement.Currency})"><FormattedValue>2.58</FormattedValue><Value>2.58</Value></Field>
</Section>
</GroupFooter>
</Group>
<GroupFooter>
<Section SectionNumber="0">
<Field Name="LocationGroupFooterText1" FieldName="{@LocationGroupFooterText}"><FormattedValue>Total Bruce Lee (tran: 60)</FormattedValue><Value>Total Bruce Lee (tran: 60)</Value></Field>
<Field Name="SumofCommissionBbb2" FieldName="Sum ({SubAgentSettlement.CommissionBBB}, {SubAgentSettlement.Location})"><FormattedValue>99.74</FormattedValue><Value>99.74</Value></Field>
<Field Name="SumofCommissionEee2" FieldName="Sum ({SubAgentSettlement.CommissionEEE}, {SubAgentSettlement.Location})"><FormattedValue>55.81</FormattedValue><Value>55.81</Value></Field>
</Section>
</GroupFooter>
</Group>
<Group Level="1">
<GroupHeader>
<Section SectionNumber="0">
<Field Name="GroupNameLocation1" FieldName="GroupName ({SubAgentSettlement.Location})"><FormattedValue>Katar pipin</FormattedValue><Value>Katar pipin</Value></Field>
</Section>
</GroupHeader>
<Group Level="2">
<GroupHeader>
<Section SectionNumber="0">
</Section>
</GroupHeader>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<GroupFooter>
<Section SectionNumber="0">
<Field Name="GroupFooterText1" FieldName="{@GroupFooterText}"><FormattedValue>Total BBB (tran: 5)</FormattedValue><Value>Total BBB (tran: 5)</Value></Field>
<Field Name="SumofCommission1" FieldName="Sum ({SubAgentSettlement.Commission}, {SubAgentSettlement.Currency})"><FormattedValue>7.00</FormattedValue><Value>7.00</Value></Field>
<Field Name="SumofCommissionBbb1" FieldName="Sum ({SubAgentSettlement.CommissionBBB}, {SubAgentSettlement.Currency})"><FormattedValue>7.00</FormattedValue><Value>7.00</Value></Field>
<Field Name="SumofCommissionEee1" FieldName="Sum ({SubAgentSettlement.CommissionEEE}, {SubAgentSettlement.Currency})"><FormattedValue>3.82</FormattedValue><Value>3.82</Value></Field>
</Section>
</GroupFooter>
</Group>
<Group Level="2">
<GroupHeader>
<Section SectionNumber="0">
</Section>
</GroupHeader>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<GroupFooter>
<Section SectionNumber="0">
<Field Name="GroupFooterText1" FieldName="{@GroupFooterText}"><FormattedValue>Total EEE (tran: 3)</FormattedValue><Value>Total EEE (tran: 3)</Value></Field>
<Field Name="SumofCommission1" FieldName="Sum ({SubAgentSettlement.Commission}, {SubAgentSettlement.Currency})"><FormattedValue>65.50</FormattedValue><Value>65.50</Value></Field>
<Field Name="SumofCommissionBbb1" FieldName="Sum ({SubAgentSettlement.CommissionBBB}, {SubAgentSettlement.Currency})"><FormattedValue>1.75</FormattedValue><Value>1.75</Value></Field>
<Field Name="SumofCommissionEee1" FieldName="Sum ({SubAgentSettlement.CommissionEEE}, {SubAgentSettlement.Currency})"><FormattedValue>55.50</FormattedValue><Value>55.50</Value></Field>
</Section>
</GroupFooter>
</Group>
<Group Level="2">
<GroupHeader>
<Section SectionNumber="0">
</Section>
</GroupHeader>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<GroupFooter>
<Section SectionNumber="0">
<Field Name="GroupFooterText1" FieldName="{@GroupFooterText}"><FormattedValue>Total UUU (tran: 1)</FormattedValue><Value>Total UUU (tran: 1)</Value></Field>
<Field Name="SumofCommission1" FieldName="Sum ({SubAgentSettlement.Commission}, {SubAgentSettlement.Currency})"><FormattedValue>1.00</FormattedValue><Value>1.00</Value></Field>
<Field Name="SumofCommissionBbb1" FieldName="Sum ({SubAgentSettlement.CommissionBBB}, {SubAgentSettlement.Currency})"><FormattedValue>17.35</FormattedValue><Value>17.35</Value></Field>
<Field Name="SumofCommissionEee1" FieldName="Sum ({SubAgentSettlement.CommissionEEE}, {SubAgentSettlement.Currency})"><FormattedValue>10.69</FormattedValue><Value>10.69</Value></Field>
</Section>
</GroupFooter>
</Group>
<GroupFooter>
<Section SectionNumber="0">
<Field Name="LocationGroupFooterText1" FieldName="{@LocationGroupFooterText}"><FormattedValue>Total Katar pipin (tran: 9)</FormattedValue><Value>Total Katar pipin (tran: 9)</Value></Field>
<Field Name="SumofCommissionBbb2" FieldName="Sum ({SubAgentSettlement.CommissionBBB}, {SubAgentSettlement.Location})"><FormattedValue>9.10</FormattedValue><Value>9.10</Value></Field>
<Field Name="SumofCommissionEee2" FieldName="Sum ({SubAgentSettlement.CommissionEEE}, {SubAgentSettlement.Location})"><FormattedValue>2.01</FormattedValue><Value>2.01</Value></Field>
</Section>
</GroupFooter>
</Group>
<Group Level="1">
<GroupHeader>
<Section SectionNumber="0">
<Field Name="GroupNameLocation1" FieldName="GroupName ({SubAgentSettlement.Location})"><FormattedValue>Samsung</FormattedValue><Value>Samsung</Value></Field>
</Section>
</GroupHeader>
<Group Level="2">
<GroupHeader>
<Section SectionNumber="0">
</Section>
</GroupHeader>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<GroupFooter>
<Section SectionNumber="0">
<Field Name="GroupFooterText1" FieldName="{@GroupFooterText}"><FormattedValue>Total BBB (tran: 5)</FormattedValue><Value>Total BBB (tran: 5)</Value></Field>
<Field Name="SumofCommission1" FieldName="Sum ({SubAgentSettlement.Commission}, {SubAgentSettlement.Currency})"><FormattedValue>16.00</FormattedValue><Value>16.00</Value></Field>
<Field Name="SumofCommissionBbb1" FieldName="Sum ({SubAgentSettlement.CommissionBBB}, {SubAgentSettlement.Currency})"><FormattedValue>17.00</FormattedValue><Value>17.00</Value></Field>
<Field Name="SumofCommissionEee1" FieldName="Sum ({SubAgentSettlement.CommissionEEE}, {SubAgentSettlement.Currency})"><FormattedValue>17.46</FormattedValue><Value>17.46</Value></Field>
</Section>
</GroupFooter>
</Group>
<GroupFooter>
<Section SectionNumber="0">
<Field Name="LocationGroupFooterText1" FieldName="{@LocationGroupFooterText}"><FormattedValue>Total Samsung (tran: 15)</FormattedValue><Value>Total Samsung (tran: 5)</Value></Field>
<Field Name="SumofCommissionBbb2" FieldName="Sum ({SubAgentSettlement.CommissionBBB}, {SubAgentSettlement.Location})"><FormattedValue>5.00</FormattedValue><Value>5.00</Value></Field>
<Field Name="SumofCommissionEee2" FieldName="Sum ({SubAgentSettlement.CommissionEEE}, {SubAgentSettlement.Location})"><FormattedValue>17.46</FormattedValue><Value>17.46</Value></Field>
</Section>
</GroupFooter>
</Group>
<Group Level="1">
<GroupHeader>
<Section SectionNumber="0">
<Field Name="GroupNameLocation1" FieldName="GroupName ({SubAgentSettlement.Location})"><FormattedValue>Erica</FormattedValue><Value>Erica</Value></Field>
</Section>
</GroupHeader>
<Group Level="2">
<GroupHeader>
<Section SectionNumber="0">
</Section>
</GroupHeader>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<GroupFooter>
<Section SectionNumber="0">
<Field Name="GroupFooterText1" FieldName="{@GroupFooterText}"><FormattedValue>Total BBB (tran: 5)</FormattedValue><Value>Total BBB (tran: 5)</Value></Field>
<Field Name="SumofCommission1" FieldName="Sum ({SubAgentSettlement.Commission}, {SubAgentSettlement.Currency})"><FormattedValue>6.10</FormattedValue><Value>6.10</Value></Field>
<Field Name="SumofCommissionBbb1" FieldName="Sum ({SubAgentSettlement.CommissionBBB}, {SubAgentSettlement.Currency})"><FormattedValue>6.12</FormattedValue><Value>6.12</Value></Field>
<Field Name="SumofCommissionEee1" FieldName="Sum ({SubAgentSettlement.CommissionEEE}, {SubAgentSettlement.Currency})"><FormattedValue>88.08</FormattedValue><Value>88.08</Value></Field>
</Section>
</GroupFooter>
</Group>
<Group Level="2">
<GroupHeader>
<Section SectionNumber="0">
</Section>
</GroupHeader>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<GroupFooter>
<Section SectionNumber="0">
<Field Name="GroupFooterText1" FieldName="{@GroupFooterText}"><FormattedValue>Total EEE (tran: 2)</FormattedValue><Value>Total EEE (tran: 2)</Value></Field>
<Field Name="SumofCommission1" FieldName="Sum ({SubAgentSettlement.Commission}, {SubAgentSettlement.Currency})"><FormattedValue>13.00</FormattedValue><Value>13.00</Value></Field>
<Field Name="SumofCommissionBbb1" FieldName="Sum ({SubAgentSettlement.CommissionBBB}, {SubAgentSettlement.Currency})"><FormattedValue>15.87</FormattedValue><Value>15.87</Value></Field>
<Field Name="SumofCommissionEee1" FieldName="Sum ({SubAgentSettlement.CommissionEEE}, {SubAgentSettlement.Currency})"><FormattedValue>13.00</FormattedValue><Value>13.00</Value></Field>
</Section>
</GroupFooter>
</Group>
<Group Level="2">
<GroupHeader>
<Section SectionNumber="0">
</Section>
</GroupHeader>
<Details Level="3">
<Section SectionNumber="0">
</Section>
</Details>
<GroupFooter>
<Section SectionNumber="0">
<Field Name="GroupFooterText1" FieldName="{@GroupFooterText}"><FormattedValue>Total UUU (transactions: 1)</FormattedValue><Value>Total UUU (transactions: 1)</Value></Field>
<Field Name="SumofCommission1" FieldName="Sum ({SubAgentSettlement.Commission}, {SubAgentSettlement.Currency})"><FormattedValue>22.00</FormattedValue><Value>22.00</Value></Field>
<Field Name="SumofCommissionBbb1" FieldName="Sum ({SubAgentSettlement.CommissionBBB}, {SubAgentSettlement.Currency})"><FormattedValue>32.70</FormattedValue><Value>32.70</Value></Field>
<Field Name="SumofCommissionEee1" FieldName="Sum ({SubAgentSettlement.CommissionEEE}, {SubAgentSettlement.Currency})"><FormattedValue>41.38</FormattedValue><Value>41.38</Value></Field>
</Section>
</GroupFooter>
</Group>
<GroupFooter>
<Section SectionNumber="0">
<Field Name="LocationGroupFooterText1" FieldName="{@LocationGroupFooterText}"><FormattedValue>Total Erica (tran: 8)</FormattedValue><Value>Total Erica (tran: 8)</Value></Field>
<Field Name="SumofCommissionBbb2" FieldName="Sum ({SubAgentSettlement.CommissionBBB}, {SubAgentSettlement.Location})"><FormattedValue>4.87</FormattedValue><Value>4.87</Value></Field>
<Field Name="SumofCommissionEee2" FieldName="Sum ({SubAgentSettlement.CommissionEEE}, {SubAgentSettlement.Location})"><FormattedValue>2.66</FormattedValue><Value>2.66</Value></Field>
</Section>
</GroupFooter>
</Group>
<ReportFooter>
<Section SectionNumber="0">
<Text Name="Text11"><TextValue>Total num of tran:</TextValue>
</Text>
<Field Name="CountofDate1" FieldName="Count ({SubAgentSettlement.Date})"><FormattedValue>126</FormattedValue><Value>126</Value></Field>
<Field Name="CurrencyRateLine1" FieldName="{@CurrencyRateLine}"><FormattedValue>Curr on date: 12/03/2009</FormattedValue><Value>Curr on date: 12/03/2009</Value></Field>
<Subreport Name="Subreport1">
<ReportHeader>
</ReportHeader>
<Details Level="1">
<Section SectionNumber="0">
<Field Name="CurrencyLine1" FieldName="{@CurrencyLine}"><FormattedValue>1 EEE = 10.12345 UUU</FormattedValue><Value>1 EEE = 10.12345 UUU</Value></Field>
</Section>
</Details>
<Details Level="1">
<Section SectionNumber="0">
<Field Name="CurrencyLine1" FieldName="{@CurrencyLine}"><FormattedValue>1 EEE = 7.12345 BBB</FormattedValue><Value>1 EEE = 7.12345 BBB</Value></Field>
</Section>
</Details>
<Details Level="1">
<Section SectionNumber="0">
<Field Name="CurrencyLine1" FieldName="{@CurrencyLine}"><FormattedValue>1 UUU = 6.12345 BBB</FormattedValue><Value>1 UUU = 6.123456 BBB</Value></Field>
</Section>
</Details>
<ReportFooter>
<Section SectionNumber="0">
</Section>
</ReportFooter>
</Subreport>
</Section>
<Section SectionNumber="1">
</Section>
</ReportFooter>
</CrystalReport>Here's a starter :
SQL> SELECT x1.GroupName
2 , x2.Field1
3 , x2.Field2
4 , x2.Field3
5 , x2.Field4
6 FROM my_clob_table t
7 , XMLTable(
8 XMLNamespaces(default 'urn:crystal-reports:schemas:report-detail'),
9 '/CrystalReport/Group'
10 passing xmltype(t.xml_data)
11 columns
12 GroupName varchar2(30) path 'GroupHeader/Section/Field/Value'
13 , Groups xmltype path 'Group|GroupFooter'
14 ) x1
15 , XMLTable(
16 XMLNamespaces(default 'urn:crystal-reports:schemas:report-detail'),
17 '/Group/GroupFooter/Section|/GroupFooter/Section'
18 passing x1.Groups
19 columns
20 Field1 varchar2(30) path 'Field[1]/Value'
21 , Field2 varchar2(30) path 'Field[2]/Value'
22 , Field3 varchar2(30) path 'Field[3]/Value'
23 , Field4 varchar2(30) path 'Field[4]/Value'
24 ) x2
25 ;
GROUPNAME FIELD1 FIELD2 FIELD3 FIELD4
bilbo bagins Total BBB (tran: 6) 12.00 13.00 14.10
bilbo bagins Total EEE (tran: 2) 12.50 44.59 72.52
bilbo bagins Total bilbo bagins (tran: 8) 34.89 17.85
Bruce Lee Total BBB (tran: 5) 18.11 3.24 1.33
Bruce Lee Total EEE (tran: 8) 10.17 7.62 1.53
Bruce Lee Total UUU (transactions: 7) 2.01 3.71 2.58
Bruce Lee Total Bruce Lee (tran: 60) 99.74 55.81
Katar pipin Total BBB (tran: 5) 7.00 7.00 3.82
Katar pipin Total EEE (tran: 3) 65.50 1.75 55.50
Katar pipin Total UUU (tran: 1) 1.00 17.35 10.69
Katar pipin Total Katar pipin (tran: 9) 9.10 2.01
Samsung Total BBB (tran: 5) 16.00 17.00 17.46
Samsung Total Samsung (tran: 5) 5.00 17.46
Erica Total BBB (tran: 5) 6.10 6.12 88.08
Erica Total EEE (tran: 2) 13.00 15.87 13.00
Erica Total UUU (transactions: 1) 22.00 32.70 41.38
Erica Total Erica (tran: 8) 4.87 2.66
17 rows selected -
Read data from excel sheet and then perform the required operations.
Hi all
I need to write a procedure which can read data from excel sheet.I have excel sheet in which i have to options one is modification and other is addition.so if it reads modification then i need to read the concerned table name then check its availability in pl-sql datbase.If table exists then reading the realated column in that row to fire the querry. The excel sheet is saved in local disk c.
can anybody help me with this.How i need to start specialy to read the data from excel sheet saved in local disk c.
Edited by: user13334062 on Jun 30, 2010 3:45 AMHi
If you can convert the excel to a csv format, then it can be simply query from DB Creating Oracle External Tables. Best part is that you may still change the CSV using EXCEL.
Following action Points can be adopt;
*1. Convert Excel File to a csv. File Save as CSV*
*2. Create Oracle Directory* ( This has to be the location of your excel file )
SQL> Create directory mydir as 'C:\testdb'; --- "testdb" is the location folder in win for your excel sheet.
*3. Create the External Table*
SQL> create table my_ext_tab (
Field1 Datatype,
Field2 Datatype,
Field3 Datatype,
Field4 Datatype,
Field5 Datatype
Organization external
(type oracle_loader default directory mydir
access parameters (records delimited by newline fields terminated by ',')
location ('my_ext_tab.csv'))
reject limit 100;
*4. Now you can query the table "my_ext_tab"*
Select * from "my_ext_tab";
Please avoid the reformat the data column inside the spreadsheet (CSV). -
Help Required -- Can we use SQL Query to READ data from SAP MDM Tables
Hi All,
Please help.........
Can we use SQL Query to READ(No Creation/Updation/Deletion just Read) Data from SAP MDM tables directly, without using MDM Syndicator.
Or direct SQL access to SAP MDM tables is not possible. Only through MDM Syndicator can we export data.
Thanks in Advance
RegardsAll the tables you create in Repository comes under A2i_CM_Tables in Database named as your repository name. So the tables names are fields of table A2i_CM_Tables. Now i tried it but cant make it.
Now, I dont think its possible to extract all fields in tables and there values using select query. May be pure sql guy can do that or not.
But there is no relation of data extraction and syndicator. Data is viewed in Data Manager. and you can also store data in a file from DM also.
BR,
Alok -
How Can i Read data From Maintainance View
I Want read data from Maintainance View. i written select query
SELECT *
FROM J_1yyyyV
INTO TABLE GT_BUSPLACE.
WHERE BUPLA = LV_BUPLA.
this is giving following error
"J_1yyyyV" is not defined in the ABAP Dictionary as a table,
projection view, or database view.
Can you help me Please.
Thanks in Advance.
Regards,
Raj.Hi raj,
maintainance view is a nothing but combinations of table using join on some fields..
see the relation ship between the joins..
if you want to write selection query ..go to se11 -->enter view name >and open tab>
Table/Join conditions--> see the table's involved and join conditons between tables.
and write the select query same as like the Table/Join conditions in se11..now you can acheive the
table maintainance fields..
Prabhudas -
Hi experts, how to use open sql to read data from one " maintenance view"?
i want to use this part of data within report ,so how to use open sql statement to read data from one " maintenance view"?
Hi
You can't use OPEN SQl statements to fetch data from maintenance view
You have to use only Database views
see the different types of views and the difference
The followings are different types of views:
- Database View (SE11)
Database views are implement an inner join, that is, only records of the primary table (selected via the join operation) for which the corresponding records of the secondary tables also exist are fetched. Inconsistencies between primary and secondary table could, therefore, lead to a reduced selection set.
In database views, the join conditions can be formulated using equality relationships between any base fields. In the other types of view, they must be taken from existing foreign keys. That is, tables can only be collected in a maintenance or help view if they are linked to one another via foreign keys.
- Help View ( SE54)
Help views are used to output additional information when the online help system is called.
When the F4 button is pressed for a screen field, a check is first made on whether a matchcode is defined for this field. If this is not the case, the help view is displayed in which the check table of the field is the primary table. Thus, for each table no more than one help view can be created, that is, a table can only be primary table in at most one help view.
- Projection View
Projection views are used to suppress or mask certain fields in a table (projection), thus minimizing the number of interfaces. This means that only the data that is actually required is exchanged when the database is accessed.
A projection view can draw upon only one table. Selection conditions cannot be specified for projection views.
- Maintenance View ( SE54 )
Maintenance views enable a business-oriented approach to looking at data, while at the same time, making it possible to maintain the data involved. Data from several tables can be summarized in a maintenance view and maintained collectively via this view. That is, the data is entered via the view and then distributed to the underlying tables by the system.
Please have a look at below link. It will help you.
http://help.sap.com/saphelp_nw04/helpdata/en/cf/21ed06446011d189700000e8322d00/frameset.htm
for more detailed info look on:
http://www.sap-img.com/abap/what-is-the-different-types-and-usage-of-views.htm
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/abap+dictionary&
Reward points for useful Answers
Regards
Anji -
LPX-00601: Invalid token in: err while trying to read data from xml
Hey ,
While trying to read data from xml i got err:
LPX-00601: Invalid token in: 'path'
the proc. i'm using to read data from the xml is:
procedure read_xml_file_test (in_filename in varchar2)
is
my_dir varchar2(20) := 'XML_DIR;
cur_emp2 number:=0;
l_bfile BFILE;
l_clob CLOB;
l_parser dbms_xmlparser.Parser;
l_doc dbms_xmldom.DOMDocument;
l_nl dbms_xmldom.DOMNodeList;
l_nl2 dbms_xmldom.DOMNodeList;
l_n dbms_xmldom.DOMNode;
l_n2 dbms_xmldom.DOMNode;
l_temp VARCHAR2(1000);
v_errors internet_clients.errors%type;
src_csid NUMBER := NLS_CHARSET_ID('UTF8');
dest_offset INTEGER := 1;
src_offset INTEGER := 1;
lang_context INTEGER := dbms_lob.default_lang_ctx;
warning INTEGER;
v_count number := 0; --total records
v_count_s number := 0; -- sucsess record
v_count_f number := 0; -- failed record
v_flag varchar2(1);
v_char2 varchar2(1);
v_l1 VARCHAR2(255);
v_l2 VARCHAR2(255);
v_l3 VARCHAR2(255);
v_l4 VARCHAR2(255);
v_l6 VARCHAR2(255);
BEGIN
l_bfile := BFileName(my_dir, in_filename);
dbms_lob.createtemporary(l_clob, cache=>FALSE);
dbms_lob.open(l_bfile, dbms_lob.lob_readonly);
dbms_lob.loadclobfromfile(l_clob, l_bfile, dbms_lob.getlength(l_bfile), dest_offset,src_offset, src_csid, lang_context, warning);
dbms_lob.close(l_bfile);
-- make sure implicit date conversions are performed correctly
dbms_session.set_nls('NLS_DATE_FORMAT','''DD/MM/RR HH24:MI:SS''');
-- Create a parser.
l_parser := dbms_xmlparser.newParser;
-- Parse the document and create a new DOM document.
dbms_xmlparser.parseClob(l_parser, l_clob);
l_doc := dbms_xmlparser.getDocument(l_parser);
-- Free resources associated with the CLOB and Parser now they are no longer needed.
dbms_lob.freetemporary(l_clob);
dbms_xmlparser.freeParser(l_parser);
-- Get a list of all the nodes in the document using the XPATH syntax.
l_nl := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(l_doc),'soap:Envelope/soap:Body/GetFieldsNameResponse/GetFieldsNameResult/diffgr:diffgram/DataSet_FRM_GANERIC_PROP/FRM_GANERIC_PROP');
-- Loop through the list and create a new record in a tble collection
-- for each record.
FOR cur_emp IN 0 .. dbms_xmldom.getLength(l_nl) - 1 LOOP
l_n := dbms_xmldom.item(l_nl, cur_emp);
cur_emp2:=0;
loop
v_count := v_count + 1;
begin
-- Use XPATH syntax to assign values to he elements of the collection.
dbms_xslprocessor.valueOf(l_n,'L1/text()',v_l1);
dbms_xslprocessor.valueOf(l_n,'L2/text()',v_l2);
dbms_xslprocessor.valueOf(l_n,'L3/text()',v_l3);
dbms_xslprocessor.valueOf(l_n,'L4/text()',v_l4);
dbms_xslprocessor.valueOf(l_n,'L6/text()',v_l6);
exception
when others then
null;
end;
exit when cur_emp2=dbms_xmldom.getLength(l_nl2);
END LOOP;
end loop;
-- Free any resources associated with the document now it
-- is no longer needed.
dbms_xmldom.freeDocument(l_doc);
--remove file to another directory
--COMMIT; -- do not use the commit if you want to run this proc. from within the search_dir_list proc , because it execute a select from tmp table dir_list which contain a "on commit delete rows" clause.
/*EXCEPTION
/*WHEN OTHERS THEN
dbms_lob.freetemporary(l_clob);
dbms_xmlparser.freeParser(l_parser);
dbms_xmldom.freeDocument(l_doc);
null;
ROLLBACK; */
END;While trying to execute this i got:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00601: Invalid token in: 'soap:Envelope/soap:Body/GetFieldsNameResponse/GetFieldsNameResult/diffgr:diffgram/DataSet_FRM_GANERIC_PROP/FRM_GANERIC_PROP'
ORA-06512: at "XDB.DBMS_XSLPROCESSOR", line 939
ORA-06512: at "XDB.DBMS_XSLPROCESSOR", line 967
ORA-06512: at "MARKET.READ_XML_FILE_TEST", line 51
ORA-06512: at line 1
i guess i mised somthing at the line
l_nl := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(l_doc),'soap:Envelope/soap:Body/GetFieldsNameResponse/GetFieldsNameResult/diffgr:diffgram/DataSet_FRM_GANERIC_PROP/FRM_GANERIC_PROP');i attached here part of my xml:
<?xml version="1.0" encoding="UTF-8" ?>
- <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <soap:Body>
- <GetFieldsNameResponse xmlns="http://tempuri.org/">
- <GetFieldsNameResult>
- <xs:schema id="DataSet_FRM_GANERIC_PROP" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xs:element name="DataSet_FRM_GANERIC_PROP" msdata:IsDataSet="true" msdata:Locale="he-IL">
- <xs:complexType>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="FRM_GANERIC_PROP">
- <xs:complexType>
- <xs:sequence>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
- <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
- <DataSet_FRM_GANERIC_PROP xmlns="">
- <FRM_GANERIC_PROP diffgr:id="FRM_GANERIC_PROP1" msdata:rowOrder="0">
<L1>val1</L1>
<L2>val2</L2>
<L3>val3</L3>
<L4>val4</L4>
<L6>val6</L6>
</FRM_GANERIC_PROP>
</DataSet_FRM_GANERIC_PROP>
</diffgr:diffgram>
</GetFieldsNameResult>
</GetFieldsNameResponse>
</soap:Body>
</soap:Envelope>I Guess it somthing that have to do with node definition ,
but i have tried so many combinations and none ot those worked for me.
i'm deeply stuck here.
What do i miss here?
THANKS yair
Edited by: yair_k on 02:30 14/10/2010Hey , after got a lot of success with the xml reading part , i wonder if you
can help me with a problem while trying to reading that xml from a web service.
i use a procedure as followes:
FUNCTION read_from_web_service(in_username in varchar2 , in_password in varchar2)
RETURN CHAR
AS
l_service UTL_DBWS.service;
l_call UTL_DBWS.call;
l_a_ns VARCHAR2(32767);
l_wsdl_url VARCHAR2(32767);
l_namespace VARCHAR2(32767);
l_service_qname UTL_DBWS.qname;
l_port_qname UTL_DBWS.qname;
l_operation_qname UTL_DBWS.qname;
l_xmltype_in SYS.XMLTYPE;
l_xmltype_out SYS.XMLTYPE;
l_return VARCHAR2(32767);
BEGIN
l_wsdl_url := 'http://www.company.com/publisherService/ServiceGetpublisherTable.asmx?wsdl';
l_namespace := 'http://tempuri.org/';
l_service_qname := UTL_DBWS.to_qname(l_namespace, 'ServiceGetpublisherTable');
l_port_qname := UTL_DBWS.to_qname(l_namespace, 'ServiceGetpublisherTableSoap');
l_operation_qname := UTL_DBWS.to_qname(l_namespace, 'GetFieldsName');
l_service := UTL_DBWS.create_service (
wsdl_document_location => URIFACTORY.getURI(l_wsdl_url),
service_name => l_service_qname);
l_call := UTL_DBWS.create_call (
service_handle => l_service,
port_name => l_port_qname,
operation_name => l_operation_qname);
l_xmltype_in := SYS.XMLTYPE('<?xml version="1.0" encoding="utf-8"?>
<GetFieldsName xmlns="' || l_namespace || '">
<user>' || in_username || '</user>
<password>'|| in_password || '</password>
</GetFieldsName>');
l_xmltype_out := UTL_DBWS.invoke(call_Handle => l_call,
request => l_xmltype_in);
UTL_DBWS.release_call (call_handle => l_call);
UTL_DBWS.release_service (service_handle => l_service);
l_return := l_xmltype_out.extract('//GetFieldsName/text()').getstringVal();
dbms_output.put_line(l_return);
RETURN l_return;
END;but when i run it i got message:
ORA-29532: Java call terminated by uncaught Java exception: javax.xml.rpc.soap.SOAPFaultException: Server did not recognize the value of HTTP Header SOAPAction: .
regarding the line:
l_xmltype_out := UTL_DBWS.invoke(call_Handle => l_call,
request => l_xmltype_in);
So , i deeply stuck here!
my web service description is:
<?xml version="1.0" encoding="utf-8" ?>
- <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://tempuri.org/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
- <wsdl:types>
- <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
- <s:element name="GetFieldsName">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="user" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="GetFieldsNameResponse">
- <s:complexType>
- <s:sequence>
- <s:element minOccurs="0" maxOccurs="1" name="GetFieldsNameResult">
- <s:complexType>
- <s:sequence>
<s:element ref="s:schema" />
<s:any />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="GetMSG_ByUser_Not_Readed">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="user" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="GetMSG_ByUser_Not_ReadedResponse">
- <s:complexType>
- <s:sequence>
- <s:element minOccurs="0" maxOccurs="1" name="GetMSG_ByUser_Not_ReadedResult">
- <s:complexType>
- <s:sequence>
<s:element ref="s:schema" />
<s:any />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="SetMSG_ByUser_Not_Readed_As_Readed">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="user" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Rec_Id" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="SetMSG_ByUser_Not_Readed_As_ReadedResponse">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="SetMSG_ByUser_Not_Readed_As_ReadedResult" type="s:boolean" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
- <wsdl:message name="GetFieldsNameSoapIn">
<wsdl:part name="parameters" element="tns:GetFieldsName" />
</wsdl:message>
- <wsdl:message name="GetFieldsNameSoapOut">
<wsdl:part name="parameters" element="tns:GetFieldsNameResponse" />
</wsdl:message>
- <wsdl:message name="GetMSG_ByUser_Not_ReadedSoapIn">
<wsdl:part name="parameters" element="tns:GetMSG_ByUser_Not_Readed" />
</wsdl:message>
- <wsdl:message name="GetMSG_ByUser_Not_ReadedSoapOut">
<wsdl:part name="parameters" element="tns:GetMSG_ByUser_Not_ReadedResponse" />
</wsdl:message>
- <wsdl:message name="SetMSG_ByUser_Not_Readed_As_ReadedSoapIn">
<wsdl:part name="parameters" element="tns:SetMSG_ByUser_Not_Readed_As_Readed" />
</wsdl:message>
- <wsdl:message name="SetMSG_ByUser_Not_Readed_As_ReadedSoapOut">
<wsdl:part name="parameters" element="tns:SetMSG_ByUser_Not_Readed_As_ReadedResponse" />
</wsdl:message>
- <wsdl:portType name="ServiceGetpublisherTableSoap">
- <wsdl:operation name="GetFieldsName">
<wsdl:input message="tns:GetFieldsNameSoapIn" />
<wsdl:output message="tns:GetFieldsNameSoapOut" />
</wsdl:operation>
- <wsdl:operation name="GetMSG_ByUser_Not_Readed">
<wsdl:input message="tns:GetMSG_ByUser_Not_ReadedSoapIn" />
<wsdl:output message="tns:GetMSG_ByUser_Not_ReadedSoapOut" />
</wsdl:operation>
- <wsdl:operation name="SetMSG_ByUser_Not_Readed_As_Readed">
<wsdl:input message="tns:SetMSG_ByUser_Not_Readed_As_ReadedSoapIn" />
<wsdl:output message="tns:SetMSG_ByUser_Not_Readed_As_ReadedSoapOut" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="ServiceGetpublisherTableSoap" type="tns:ServiceGetpublisherTableSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="GetFieldsName">
<soap:operation soapAction="http://tempuri.org/GetFieldsName" style="document" />
- <wsdl:input>
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="GetMSG_ByUser_Not_Readed">
<soap:operation soapAction="http://tempuri.org/GetMSG_ByUser_Not_Readed" style="document" />
- <wsdl:input>
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="SetMSG_ByUser_Not_Readed_As_Readed">
<soap:operation soapAction="http://tempuri.org/SetMSG_ByUser_Not_Readed_As_Readed" style="document" />
- <wsdl:input>
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:binding name="ServiceGetpublisherTableSoap12" type="tns:ServiceGetpublisherTableSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="GetFieldsName">
<soap12:operation soapAction="http://tempuri.org/GetFieldsName" style="document" />
- <wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
- <wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="GetMSG_ByUser_Not_Readed">
<soap12:operation soapAction="http://tempuri.org/GetMSG_ByUser_Not_Readed" style="document" />
- <wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
- <wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="SetMSG_ByUser_Not_Readed_As_Readed">
<soap12:operation soapAction="http://tempuri.org/SetMSG_ByUser_Not_Readed_As_Readed" style="document" />
- <wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
- <wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="ServiceGetpublisherTable">
- <wsdl:port name="ServiceGetpublisherTableSoap" binding="tns:ServiceGetpublisherTableSoap">
<soap:address location="http://www.company.com/publisherService/ServiceGetpublisherTable.asmx" />
</wsdl:port>
- <wsdl:port name="ServiceGetpublisherTableSoap12" binding="tns:ServiceGetpublisherTableSoap12">
<soap12:address location="http://www.company.com/publisherService/ServiceGetpublisherTable.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>also i have to mention that i have changed publisher references inside the code , and i also canot
supply username and password , so i guess you canot test it. still i not shure if my definitions (namespace est.) inside my code defined correctly.
hope you can help me with this.
regards
yair -
Reading Data From a Different Planning Package in a Exit Function
Hi,
Is it possible to read data from a planning level / package other than the package that the exit function was executed with? I want to read data into an internal table from another package and use that data in combination with the data in the current package to create new records. If this is possible sample code for how to read data from a different package would be appreciated.
Thanks!
Mel WaldnerHi,
As an example lets say you have restricted 0calmonth in your package to 6.2007. In the planning layout to fetch values for 5.2007 (read only), you can take 0calmonth in data columns, and for this column restrict it as 5.2007.
Similarly in Planning functions, you can mark 0calmonth as field to be changed and fetch data for 5.2007.
Hope this helps. -
How to read data from Logical Database ADA for more than one financia year
Hi,
I need to read data from ADA logical database and ANLCV node for current financial year 2007 and for the next 3 years 2008, 2009, 2010. When I do this using program attached below, I receive only data for one year, which is entered at the selection screen in the field BERDATUM. How should I modify my program to read ANLCV node for more then one year ? Could anybody help me ?
Kind regards,
Zbigniew Debowski
REPORT ZWRZD075.
NODES: anlav, anlcv.
START-OF-SELECTION.
GET anlav.
WRITE:/ anlav-anln1, ' ', anlav-anln2.
GET anlcv.
WRITE:/ anlcv-kansw, ' ', anlcv-knafa, ' ', anlcv-gjahr.Hi!
Have you already tried your luck in Java Programming forum?
Regards,
Thomas -
Reading data From XML file and setting into ViewObject to Pouplate ADF UI
Hi,
I have following requirement.
I would like to read data from XML file and populate the data in ViewObject so that the data can be displayed in the ADF UI.
Also when user modifies the data in the ADF UI, it should be modified back into to ViewObject.
Here is an example - XML file contains Book Title and Author. I would like to read Book Title and Author from XML file and set it into ViewObject Attribute and then display Book title and Author in ADF UI page. Also when user modifies Book title and Author, I would like to store it back in View Object.
Please help me with this requirement and let me know if any solution exist in ADF, for populating the ADF UI screen fields with external XML file data.
ThanksRead chapter 42 http://download.oracle.com/docs/cd/E16162_01/web.1112/e16182/bcadvvo.htm of the fusion developer guide
Section 42.7, "Reading and Writing XML"
Section 42.8, "Using Programmatic View Objects for Alternative Data Sources"
Timo
Maybe you are looking for
-
Is it possible to use SOA Suite 11g with JDeveloper's integrated WebLogic?
Is it possible to use SOA Suite 11g with JDeveloper's integrated WebLogic? Or do you have to install an external WebLogic? Thanks for help. Edited by: user7722720 on 07-Dec-2011 02:04
-
Note 3 hdmi not working after kitkat update
hello all, i have the note 3 and i used to use the hdmi with the MHL cable before the recent update. after installing the kitkat update i cannot get the hdmi out to work at all. ive rest the phone, ive cleared the cache, restarted the phone and tv wh
-
New imac 3.1 i5 27" mid 2011 model, installed 10.8.2 as soon as it was first turned on. Only been running less than a week, and I have twice had a weird system semi-lockup. After waking the imac from sleep, I find I cant launch any new applications,
-
Outlook 2011 for MAC keeps asking for password
Outlook for MAC 2011 keeps asking me for google password. It wont accept what i put in. The password is correct along with name because it works when I enter it in google. I recently updated password. Need help in fixing or finding problem. Error
-
Hi all, this is more of an "asking opinions" thing. With the new G5 Intels coming around the corner. Is there any point in acquiring the current G5 models or the ones before that? I'm just noticing alot of G5s being put up for sale, including the lat