Insert the XML document with values of characters <; or >;
Hello world
Used Oracle: version 11.2.0.3.0
I want to insert an XML document in a binary XML field. But for an element, the value includes characters such as > or <.
Here's an example query:
Update / * + no_xml_query_rewrite * / ms2 set mstag = XMLQuery (' copy $tmp: = .modify (for $i in $tmp/tags/fields[@id="MS"]))
back insert nodes (< value > TEST\n & lt; Address1 & gt; < / value >) in $i) return $tmp' from mstag content back) where psid = 5900;
But because we're using the character & in a SQL query, this request has failed. We invited to specify the 2 values.
So, what is the way of giving the < Address1 > value to the value of the element in the example?
Thanks in advance
The command is not really "fail" in itself. It is just the tool that you are using recognizes '&' characters and treats the following identifiers as replacement variables.
What tool do you use?
For example, in SQL * Plus you can disable this behavior through the SET DEFINE OFF or SET SCAN OFF command.
Tags: Database
Similar Questions
-
How to extract the node where the value of the node is the max in all of the XML document?
Hello
I have a transaction that refers to an xmltype in iRecruitment, containing multiple versions of the same node as follows:
(only for the example data)
{noformat} & lt; Transaction & gt;
& lt; data & gt;
& lt; ObjectVersionNumber & gt; 1 & lt; / object_version_number & gt;
& lt; EO & gt;
& lt; Attribute1 & gt; A & lt; / Attribute1 & gt;
& lt; Attribut2 & gt; B & lt; / attribut2 & gt;
& lt; /EO & gt;
& lt; / data & gt;
& lt; data & gt;
& lt; ObjectVersionNumber & gt; 2 & lt; / object_version_number & gt;
& lt; EO & gt;
& lt; Attribute1 & gt; A & lt; / Attribute1 & gt;
& lt; Attribut2 & gt; C & lt; / attribut2 & gt;
& lt; /EO & gt;
& lt; / data & gt;
& lt; data & gt;
& lt; ObjectVersionNumber & gt; X & lt; / object_version_number & gt;
& lt; EO & gt;
& lt; Attribute1 & gt;? & lt; / Attribute1 & gt;
& lt; Attribut2 & gt;? & lt; / attribut2 & gt;
& lt; /EO & gt;
& lt; / data & gt;
& lt; / Transaction & gt; {noformat}
I can extract a value for FULL-TIME 1 or 2, is not a problem.
However, how can I go on the selection of a value of an attribute below FULL-TIME X, where X is the maximum value of FULL-TIME in any node in the XML document?
I tried to the last node corresponding to my way, but it is not always the case that the FULL-TIME max will correspond to this scenario.
Any help would be greatly appreciated!
Thank you very much, Pete
Published by: Pete Mahon on February 24, 2009 12:11Here's a way
SQL> set long 100000 SQL> with XML as ( 2 select XMLTYPE( 3 ' 4
5 6 ') OBJECT_VALUE 27 from dual 28 ) 29 select DATA, OVN 30 from XML, 31 XMLTable 32 ( 33 '/Transaction/data' 34 passing OBJECT_VALUE 35 columns 36 DATA XMLType path '.', 37 OVN number path 'ObjectVersionNumber' 38 ) 39 where OVN = ( select MAX(OVN) 40 from XML, 41 XMLTable 42 ( 43 '/Transaction/data' 44 passing OBJECT_VALUE 45 columns 46 OVN number path 'ObjectVersionNumber' 47 ) 48 ) 49 SQL> / DATA -------------------------------------------------------------------------------- OVN ----------1 78 11 12 13A 9B 102 1415 18 19 20A 16C 173 2122 25 26? 23? 243 3 SQL>? ? -
Change the content of the xml document as data selected with SQLX functions
Hi all
I have seen several examples of database xml documents using SQLX functions but they seem to be simple queries, which we reproduce the same forest of xml in all elements. What I'm trying to do is to create something like the following:
< billing xmls = "http://blurb.com" >
< header >
< timestamp > 2008-12-11 13:28:46 < / timestamp >
< source > ORCL < / source >
< / header >
< transaction and billing-answers >
< invoice-transaction-response >
< invoice-transaction-id > 36866320 < / billing-transaction-id >
ORDER of < invoice-transaction-type > < / billing-transaction-type >
<-group-id of transaction > 092220082100 < / transaction-group-id >
< ok >
< charged to date > 2008-09-22T 10: 20:43 - 05:00 < / beak-date >
< /OK. >
< / billing-transaction-response >
< invoice-transaction-response >
< invoice-transaction-id > 37617490 < / billing-transaction-id >
ORDER of < invoice-transaction-type > < / billing-transaction-type >
<-group-id of transaction > 112020082100 < / transaction-group-id >
< error >
reasons <>
< reason >
< text > impossible to derive information of customer SHIP_TO < / text >
< / reason >
< / reasons >
< / error >
< / billing-transaction-response >
< / billing-transaction-answers >
< / billing >
I can see how to generate the individual components of the xml document, but I don't know how to put this together in a single select statement:
SQL > SELECT XMLElement ("billing", XMLAttributes (http://blurb.com LIKE "xmls")
2, XMLElement ("header"
3, XMLElement ("timestamp", TO_CHAR (SYSDATE, ' YYYY-MM-DD HH24:MI:SS'))))
4, XMLElement ("source", "ORCL'"))).extract('/*') xml
5 FROM DUAL;
XML
----------------------------------------------------------------------------------------
< billing xmls = "http://blurb.com" >
< header >
< timestamp > 2008-12-11 13:28:46 < / timestamp >
< source > ORCL < / source >
< / header >
< / billing >
SQL > SELECT XMLElement ("billing transaction-answers"
2, XMLAgg (XMLElement ("billing-transaction-reply"
3, XMLElement ("billing transaction id", billing_transaction_id)
4, XMLElement ("billing-transaction-type", billing_transaction_type)
5, XMLElement ("transaction-group-id", transaction_group_id)
6, XMLElement ("ok"
7, XMLElement ("beak-date", billed_date))).extract('/*') xml
8 FROM table_a
9 status WHERE! = 'E';
XML
----------------------------------------------------------------------------------------------------
< transaction and billing-answers >
< invoice-transaction-response >
< invoice-transaction-id > 36866320 < / billing-transaction-id >
ORDER of < invoice-transaction-type > < / billing-transaction-type >
<-group-id of transaction > 092220082100 < / transaction-group-id >
< ok >
< charged to date > 2008-09-22T 10: 20:43 - 05:00 < / beak-date >
< /OK. >
< / billing-transaction-response >
< / billing-transaction-answers >
MDACFS@CORPD23 > SELECT XMLElement ("billing transaction-answers"
2, XMLAgg (XMLElement ("billing-transaction-reply"
3, XMLElement ("billing transaction id", billing_transaction_id)
4, XMLElement ("billing-transaction-type", billing_transaction_type)
5, XMLElement ("transaction-group-id", transaction_group_id)
6, XMLElement ("error"
7, XMLElement ("patterns"
8, XMLElement ("reason"
9, XMLElement ("text", error_message))).extract('/*') xml
10 FROM table_a
* 11 situation WHERE = 'E '; *
XML
-------------------------------------------------------------------------------------
< transaction and billing-answers >
< invoice-transaction-response >
< invoice-transaction-id > 37617490 < / billing-transaction-id >
ORDER of < invoice-transaction-type > < / billing-transaction-type >
<-group-id of transaction > 112020082100 < / transaction-group-id >
< error >
reasons <>
< reason >
< text > impossible to derive information of customer SHIP_TO < / text >
< / reason >
< / reasons >
< / error >
< / billing-transaction-response >
< / billing-transaction-answers >
This is my first attempt to generate xml from the database if it is not a correct approach then please notify. Any help much appreciated.
See you soon,.
Paul.Given you already wrote each song as a separate statement which refers to what you want, you already have the concept and just need to merge the three queries SQL in one alone. Here is an example of the fusion of your first two SQL set statements.
SELECT XMLElement("billing", XMLAttributes('http://blurb.com' AS "xmls") ,XMLElement("header" ,XMLElement("timestamp", TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')) ,XMLElement("source", 'ORCL') ), (SELECT XMLElement("billing-transaction-replies" ,XMLAgg(XMLElement("billing-transaction-reply" ,XMLElement("billing-transaction-id", rownum)))) FROM dual CONNECT BY level <= 5 )) rslt FROM DUAL; returns
2008-12-12 09:21:39 1 2 3 4 5 -
Merge the XML document in a table
Hello
I want to merge some of the values of an xml document in a table "Project_Table".
CREATE TABLE Project_Table
(
TASK_ID NUMBER (15),
TASK_NAME VARCHAR2 (100 BYTE),
START_DATE DATE,
)
I am using the following procedure, that I adapted from another post. It inserts null values, I think because I'm not showing the nodes correctly.
DECLARE
BFILE v_bfile: = BFILENAME ("'DTEMP","test.xml");
v_clob CLOB.
BEGIN
-Create directory DTEMP as "C:\TEMP";
-grant read the < schema > DTEMP directory;
DBMS_LOB.CREATETEMPORARY (v_clob, TRUE);
DBMS_LOB. OPEN (v_bfile, DBMS_LOB.lob_readonly);
DBMS_LOB. LoadFromFile (v_clob, v_bfile, DBMS_LOB.lobmaxsize);
Dbms_output.put_line (v_clob);
MERGE IN project_table t
USING (SELECT TO_NUMBER (EXTRACTVALUE (VALUE (x), ' / task ')) task_id,)
To_date (EXTRACTVALUE (value (x), "/ start"), 'DD-MM-YYYY') start_date,
EXTRACTVALUE (value (x), "/ name") TaskName
(SELECT XMLTYPE (v_clob) XML
THE DOUBLE).
TABLE (XMLSEQUENCE (EXTRACT (xml, ' / project'))) x) r
WE (t.task_id = r.task_id)
WHEN MATCHED THEN
UPDATE
SET t.start_date = r.start_date, t.task_name = r.task_name
WHEN NOT MATCHED THEN
INSERT (task_id, start_date, taskname)
VALUES (r.task_id, r.start_date, r.task_name);
COMMIT;
END;
This is the document of test.xml.
<? XML version = "1.0" encoding = "UTF-8"? >
-name of the project 'ProjectName' company 'Company' webLink = = = "" view-date = '2009-12-14"see-index '0' = gantt-Divider-location = '300' resource-divider-card ="300"version ="2.0">"
< description / >
< zoom-view state = "default: 8" / >
-<!
->
-< calendars >
-day-types >
< day-type id = '0' / >
< day-type id = "1" / >
-< Calendar id = "1" name = "default" >
< Sun weeks default = '0' LUN '0' = TEU = '0' kills = '0' game = '0' Fri '0' = Saturday = '0' / >
< overloaded-day-types / >
< days / >
< / calendar >
< / day-types >
< / calendars >
-task color = "#8cb6ce" >
-< taskproperties >
< taskproperty id = "tpd0" name = 'type' type = 'default' valuetype = "icon" / >
< taskproperty id = "TDP1" name = 'priority' type = 'default' valuetype = "icon" / >
< taskproperty id = "tpd2" name = 'info' type = 'default' valuetype = "icon" / >
< taskproperty id = "tpd3" name = "name" type = 'default' valuetype = "text" / >
< taskproperty id = "tpd4" name = "begindate" type = 'default' valuetype = "date" / >
< taskproperty id = "tpd5" name = "enddate" type = 'default' valuetype = "date" / >
< taskproperty id = "tpd6" name = "Duration" type = 'default' valuetype = "int" / >
< taskproperty id = "tpd7" name = "completion" type = 'default' valuetype = "int" / >
< taskproperty id = "tpd8" name = "Coordinator" type = 'default' valuetype = "text" / >
< taskproperty id = "tpd9" name = "predecessorsr" type = "default" valuetype = "text" / >
< / taskproperties >
< job id = '0' name = 'TaskA"color =" #0099cc "form = meeting"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"="false"start ="2010-01-28"duration ="1"complete ="0"priority ="1"expand ="true"/ >
< task id = "1" name = "TaskB" color = "#ff0000" form = meeting "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" = "false" start = "2010-01-28" duration = "1" complete = "100" priority = "1" expand = "true" / >
< job id = "2" name = 'Day' color = "#ff9933" form = meeting "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" = "false" start = "2010-02-01" duration = "19" complete = "0" priority = "1" expand = "true" / >
< job id = "3" name = "TaskD" color = "#ff0000" form = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" meeting = "false" start = "2010-02-01" duration = "32" full = "100" priority = "1" expand = "true" / >
< job id = "4" name = "TaskE" color = "#66ff99" form = meeting "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" = "false" start = "2010-02-01" duration = "67" complete = "0" priority = "1" expand = "true" / >
< job id = "5" name = "TaskF" color = "#66ff99" form = meeting "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" = "false" start = "2010-02-01" duration = "46" complete = "10" priority = "1" expand = "true" / >
< job id = "6" name = "TaskG" color = "#00cccc" form = meeting "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" = "false" start = "2010-03-15" duration = "30" complete = "0" priority = "1" expand = "true" / >
< job id = "7" name = "TaskH" color = "#00cccc" form = meeting "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" = "false" start = "2010-03-15" duration = "103" full '1' = '1' priority = expand = "true" / >
< job id = "8" name = "TaskI" color = "#0000ff" form = meeting "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" = "false" start = '2010-04-26' length = "11" complete = "0" priority = "1" expand = "true" / >
< job id = '9' name = 'TaskJ"color =" #0000ff "form = meeting"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"="false"start = '2010-04-26' length ="11"complete ="0"priority ="1"expand ="true"/ >
< job id = "10" name = "TaskK" color = "#000000" meeting = 'false' start time = "2010-07-12" = "65" full = "0" priority = "1" expand = "true" / >
< / tasks >
< resources / >
< allowances / >
< holiday / >
-< taskdisplaycolumns >
< displaycolumn property id = "tpd3" order = "0" width = "75" / >
< displaycolumn property id = "tpd4" order = "1" width = "75" / >
< displaycolumn property id = "tpd5" order = "2" width = "75" / >
< displaycolumn property id = "tpd7" order = "3" width = "75" / >
< / taskdisplaycolumns >
< Previous / >
< roles roles-name = "Default" / >
< / project >
Any ideas how to change the procedure, in order to merge the data in the xml document in the table?
Thank youHello
Here's what you need in your USING clause:
SELECT to_number(extractvalue(column_value, 'task/@id')) as task_id, to_date(extractvalue(column_value, 'task/@start'), 'YYYY-MM-DD') as start_date, extractvalue(column_value, 'task/@name') as task_name FROM TABLE( XMLSEQUENCE( EXTRACT(xmltype(v_clob), '//task') ) )
Since you want nodes "task" request, just extract them directly. In addition, 'id', 'start', 'name' is attributes, you must access them with an '@'.
You can also take a look at function XMLTABLE (which tends to replace construction TABLE (XMLSEQUENCE (...))):
SELECT * FROM XMLTABLE( '//task' passing xmltype(v_clob) columns task_id number(15) path '/task/@id', start_date date path '/task/@start', task_name varchar2(100) path '/task/@name' )
Edit: the XMLType constructor overload taking a BFILE type as an argument, so you can simplify the code a bit more:
DECLARE v_xml XMLTYPE := XMLTYPE( BFILENAME('DTEMP', 'test.xml'), nls_charset_id('AL32UTF8') ); BEGIN MERGE INTO project_table t USING ( SELECT * FROM XMLTABLE( '//task' passing v_xml columns task_id number(15) path '/task/@id', start_date date path '/task/@start', task_name varchar2(100) path '/task/@name' ) ) r ON (t.task_id = r.task_id) WHEN MATCHED THEN ... WHEN NOT MATCHED THEN ... ; ... END;
HTH
Published by: odie_63 on March 18, 2010 12:13
Published by: odie_63 on March 18, 2010 12:15
-
Help in parsing the XML result with ksoap2
Hi, I have another problem. I used KSOAP2 to call a web service net but when I catch him to display the result with a selectionneret, it shows the following screen:
reading on the web, I didn't find a good way to analyze the result. Could you help me with this? Thanks in advance
Thanks, the problem here is that we use the same webservice for more devices and a web page in .NET) that's why we use this webservice. Anyway thanks for the help. I read a lot of posts and the only way is perhaps to save the XML document in the SD card
-
Display the error when the xml document is not valid against the schema
Hello
I'm using isChemaValid() in a way that, to determine if the xml document is valid against the xml schema.
This function returns only 0 or 1, and I want to display the error and the line number if the xml is not valid.
How can I achieve this?
Thanks in advance,
Elad
Use the XMLType schemaValidate() method. It will throw an exception whose message contains the validation error.
Get a number of 'line' is not sensible as XML is concerned.
-
How to generate an xml document with a BLOB on the inside?
Hello
Using the Oracle 11 g Release 11.2.0.4.0 database, I actually use dbms_xmldom to generate xml data.
When generated, it is sent using utl_http.
All right, except that I have to include a child that contains a BLOB (stored in the database) in the exact way that it is stored in the XML structure.
(Field value contains an encoded 64 base pdf file). Length of the file can be up to 2 MB
My nearest solution was to Convert Oracle XML BLOB to type even if I'm really stuck with LPX-00210 error.
Is there another way than dbms_xmldom do?
In fact, I'm totally lost.
Can you give me a hand on this or show me an example of work?
Kind regards
Stone
Here goes...
SQL> create table images ( 2 id integer 3 , name varchar2(256) 4 , content blob 5 ); Table created SQL> SQL> declare 2 3 bf bfile := bfilename('XML_DIR','base64.bin'); 4 lob_ptr blob; 5 dest_offs integer := 1; 6 src_offs integer := 1; 7 8 begin 9 10 insert into images (id, name, content) 11 values (1, 'Koala.jpg', empty_blob()) 12 returning content into lob_ptr; 13 14 dbms_lob.open(bf, dbms_lob.lob_readonly); 15 dbms_lob.loadblobfromfile(lob_ptr, bf, dbms_lob.getlength(bf), dest_offs, src_offs); 16 dbms_lob.close(bf); 17 18 end; 19 / PL/SQL procedure successfully completed SQL> commit; Commit complete SQL> SQL> select id 2 , name 3 , utl_raw.cast_to_varchar2(dbms_lob.substr(content, 30)) as first_bytes 4 , dbms_lob.getlength(content) as lob_size 5 from images 6 / ID NAME FIRST_BYTES LOB_SIZE ----- ------------ -------------------------------- ---------- 1 Koala.jpg /9j/4AAQSkZJRgABAgEAYABgAAD/7g 1068504 SQL> SQL> declare 2 3 x_doc xmltype; 4 domdoc dbms_xmldom.DOMDocument; 5 domnode dbms_xmldom.DOMNode; 6 domtext dbms_xmldom.DOMText; 7 ostream sys.utl_BinaryOutputStream; 8 chunksize pls_integer; 9 offset pls_integer := 1; 10 buf raw(32767); 11 image blob; 12 13 begin 14 15 select xmlelement("image", 16 xmlelement("id", t.id) 17 , xmlelement("name", t.name) 18 , xmlelement("content") 19 ) 20 , t.content 21 into x_doc 22 , image 23 from images t 24 where t.id = 1 ; 25 26 domdoc := dbms_xmldom.newDOMDocument(x_doc); 27 28 -- get /image/content node so that we can append a text node and stream the BLOB to it : 29 domnode := dbms_xslprocessor.selectSingleNode(dbms_xmldom.makeNode(domdoc), '/image/content'); 30 domtext := dbms_xmldom.createTextNode(domdoc, null); 31 domnode := dbms_xmldom.appendChild(domnode, dbms_xmldom.makeNode(domtext)); 32 33 ostream := DBMS_XMLDOM.setNodeValueAsBinaryStream(domnode); 34 chunksize := dbms_lob.getchunksize(image); 35 36 loop 37 begin 38 -- read BLOB in chunk of
: 39 dbms_lob.read(image, chunksize, offset, buf); 40 exception 41 when no_data_found then 42 exit; 43 end; 44 -- write chunk to DOM node : 45 ostream.write(buf, chunksize); 46 offset := offset + chunksize; 47 end loop; 48 49 ostream.flush(); 50 ostream.close(); 51 52 dbms_xmldom.writeToFile(domdoc, 'XML_DIR/image.xml'); 53 dbms_xmldom.freeDocument(domdoc); 54 55 end; 56 / PL/SQL procedure successfully completed Image.xml release:
1 Koala.jpg /9j/4AAQSkZJRgABAgEAYABgAAD/7gAOQWRvYmUAZAAAAAAB/+EUI0V4aWYAAE1NACoAAAAIAAcB MgACAAAAFAAAAGIBOwACAAAABwAAAHZHRgADAAAAAQAEAABHSQADAAAAAQA/AACcnQABAAAADgAA AADqHAAHAAAH9AAAAACHaQAEAAAAAQAAAH0AAADnMjAwOTowMzoxMiAxMzo0ODoyOABDb3JiaXMA ... aWpkRY6dqaJY42qFjs8ZZ5nlkjZpmJUiJ1+ijn3dVeTtb4B1R5NJVaEkn/V8+u4Xijpp6SFlimp6 qNHgjlVIgrtLCyxll1NpaT6An6W92mA8HwkyadMeEZJjEDmvE/t/1f5uv//Z -
How to insert an XML document to the database table
Here's one my XML document example I want to import into database
Example XML Document
<? XML version = "1.0"? >
rowset <>
< ROW >
< DEPTXML department_id = "10" >
SALES of < DEPARTMENT_NAME > < / DEPARTMENT_NAME >
< EMPLIST >
< EMP_T EMPLOYEE_ID = "30" >
Scott < LAST_NAME > < / LAST_NAME >
< / EMP_T >
< EMP_T EMPLOYEE_ID = "31" >
Marie < LAST_NAME > < / LAST_NAME >
< / EMP_T >
< / EMPLIST >
< / DEPTXML >
< / ROW >
< ROW >
< DEPTXML department_id = "20" >
< DEPARTMENT_NAME > ACCOUNTING < / DEPARTMENT_NAME >
< EMPLIST >
< EMP_T EMPLOYEE_ID = "40" >
John < LAST_NAME > < / LAST_NAME >
< / EMP_T >
< EMP_T EMPLOYEE_ID = "41" >
Jerry < LAST_NAME > < / LAST_NAME >
< / EMP_T >
< / EMPLIST >
< / DEPTXML >
< / ROW >
< / LINES >
********End***********
Table in which I want to import this file
hr_new_emp
(
department_id number,
department_name varchar2 (50).
Number of employe_id
last_name varchar2 (50)
)If your XML code is in a file, the easiest is to load as a CLOB in the file (google search will give you lots of results to load a file into a CLOB, so I won't detail it here). Once you have it as a CLOB you can fairly easily convert that XMLTYPE for example
v_xml := XMLTYPE(v_clob);
(assuming that v_xml is declared as XMLTYPE and v_clob is declared as a CLOB)
Once you have it as an XMLTYPE that is simple to use XMLTABLE to break the XML into its components using SQL...
SQL> ed Wrote file afiedt.buf 1 with t as (select xmltype(' 2
3 ') as xml from dual) 30 -- 31 -- END OF TEST DATA 32 -- 33 select x.department_id, x.department_name, y.employee_id, y.last_name 34 from t 35 ,xmltable('/ROWSET/ROW' 36 passing t.xml 37 columns department_id number path '/ROW/DEPTXML/@DEPARTMENT_ID' 38 ,department_name varchar2(30) path '/ROW/DEPTXML/DEPARTMENT_NAME' 39 ,emplist xmltype path '/ROW/DEPTXML/EMPLIST' 40 ) x 41 ,xmltable('/EMPLIST/EMP_T' 42 passing x.emplist 43 columns employee_id number path '/EMP_T/@EMPLOYEE_ID' 44 ,last_name varchar2(30) path '/EMP_T/LAST_NAME' 45* ) y SQL> / DEPARTMENT_ID DEPARTMENT_NAME EMPLOYEE_ID LAST_NAME ------------- ------------------------------ ----------- ------------------------------ 10 SALES 30 Scott 10 SALES 31 Mary 20 ACCOUNTING 40 John 20 ACCOUNTING 41 Jerry4
165 15SALES 67 148 10Scott 911 13Mary 1217
2918 28ACCOUNTING 1920 2721 23John 2224 26Jerry 25... and once you have selected the data as it is quite easy to use an INSERT statement around it to insert data into a table, as in a regular INSERT... Select...
If you are dealing with large amounts of data or a more complex XML structure, you can consider using an XML schema to shred the data in tables.
Example here...
Re: XML processing in oracle file
And you can also load XML data easily by using the function XDB (WebDAV) to Oracle. Details in the Oracle documentation for that or you could find help in the forum XML DB, which also has a FAQ detailing the different methods how to load XML shred data...
-
LOVs using cascading on the Page elements with values exceeding 4000 characters
A few days ago, I asked a question on the community, but it turned out that there was something wrong with my account and they have removed the item, so I'll just post the solution I found here now:
Well, I found a way to use LOVs cascading on page elements with values exceeding 4000 characters:
Let's say I have a shuttle named P1_ORGANISATIE with "List of values" box, a dynamic LOV named "Source: lists of values Query" containing the value:
Select NAAM as display_value, ID like return_value
of NINEHAM
order by 1
If the number of records-NINEHAM is insufficient, the length of the value of P1_ORGANISATIE, which is a list of concatenated with colon separated digital ID, can exceed 4000 characters.
Now, suppose I have a list of selection called P1_TEST that is connected through "List of values"-> "Cascading LOV Parent article (s)" with P1_ORGANISATIE, using a named LOV dynamic with "Source: lists of values Query" containing:
Select distinct TST. NAAM as display_value, TST.ID as return_value
of the OTE NINEHAM
Join the AFDELINGEN ADG ON (ADG. OTE_ID = OTE.ID)
Join the DEELNEMERS DNR ON (DNR. ADG_ID = ADG.ID)
Join TESTDEELNEMERS TDR WE (TDR. DNR_ID = DNR.ID)
Join TESTEN TST ON (TST.ID = RDT. TST_ID)
where instr (":" |: P1_ORGANISATIE |) '':'', '':'' || OTE.ID | :'') > 0
order by 1
In this case, when P1_ORGANISATIE exceeds 3998 characters, you'll get an "ORA-01704: string literal too long"-error and the P1_TEST will show an element called "undefined".
A way around this is possible because for a named LOV, you can use a "function that returns a sql query" instead of a simple sql query. In other words, we can apply in the context of PL/SQL and thus have maximum for expressions of 32767 instead of 4000 characters. In addition, it is possible to use the two APEX_UTIL. STRING_TO_TABLE and APEX_COLLECTION.
Setting "Source: lists of query values" on the LOV appointed to P1_TEST with the following code will work:
DECLARE
l_selected APEX_APPLICATION_GLOBAL. VC_ARR2;
l_qry varchar2 (32767): =.
"Select distinct TST. NAAM as display_value, TST.ID as return_value
of the OTE NINEHAM
Join the AFDELINGEN ADG ON (ADG. OTE_ID = OTE.ID)
Join the DEELNEMERS DNR ON (DNR. ADG_ID = ADG.ID)
Join TESTDEELNEMERS TDR WE (TDR. DNR_ID = DNR.ID)
Join TESTEN TST ON (TST.ID = RDT. TST_ID)
$1
order by 1';
BEGIN
IF: P1_ORGANISATIE IS NULL
OR LENGTH(:P1_ORGANISATIE) < = 4000
THEN RETURN
Replace (l_qry
,'$1'
,' where instr (":" |: P1_ORGANISATIE |) '':'', '':'' || OTE.ID | :'') > 0'
);
ON THE OTHER
l_selected: = APEX_UTIL. STRING_TO_TABLE(:P1_ORGANISATIE);
APEX_COLLECTION. CREATE_OR_TRUNCATE_COLLECTION (p_collection_name = > 'ORGANISATIE_COLLECTIE');
FOR id IN 1.l_selected.count
LOOP
APEX_COLLECTION.add_member (p_collection_name = > 'ORGANISATIE_COLLECTIE')
, p_n001 = > to_number (l_selected (id))
);
END LOOP;
RETURN
Replace (l_qry
,'$1'
,'join apex_collections ON APC (APC. COLLECTION_NAME = "ORGANISATIE_COLLECTIE" AND APC. N001 = OTE.ID)"
);
END IF;
END;
Andreas Groenevelt says:
A few days ago, I asked a question on the community, but it turned out that there was something wrong with my account and they have removed the item, so I'll just post the solution I found here now:
Something was wrong with the whole site: AP invoice tolerance
I don't post anything substantive until we find out what is happening.
-
Is it safe to remove the date in the name of the xml document?
Hi, the iTunes library xml document is titled "iTunes Library" 2015-07-11. Is this correct and problems can occur if l remove the name date?
L ask because my Sonos system has trouble with importing iTunes playlists and they are suggesting that the document name length perhaps the question.
Thank you
This file is a copy of the database (.itl) iTunes created by iTunes, during an update. The XML version of the library is always called iTunes Library.xml. Is there is no basis for comment by Sonos, that it may be related to the length of the absolute path of the XML file - where it is on your system?
-
What is the best way to apply choice relational tables in the XML document?
I've got an XML document from outside I turn with full DB XSLT document.
Some parts of the document contain codes I want to tranfsorm to significant labels of relational tables in our database.
On road is to disassemble the XML into the relational views and join these views with tables of choice and then back, this time with labels translated, using XMLElement, etc...
Is there another way less heavy? For example,.
Select updateXML)
xml_dta
,'/ / section_to_translate/node_to_translate/variable / text () '
,(
Select the label
of table_recherche
where Group = extractValue (current_node, '... / Group/Text () ')
and code = extractValue (current_node, '... / variable/Text () ')
)
) xml_dta
from my_table
where... criteria
However, I do not know how to move from the current node to the extractValue function (if it is possible?.)
Anyone done the second way?
Thank youYou didn't tell the version of your database, so I assume one of them later.
You can include the part of the translation in the XSL transformation, by accessing an external research paper generated from the database beforehand.
Here is an example of use of the HR diagram example:
(1) the source document that are to be processed: emp.xml
198 Donald OConnell SH_CLERK 199 Douglas Grant SH_CLERK 200 Jennifer Whalen AD_ASST 201 Michael Hartstein MK_MAN 202 Pat Fay MK_REP 203 Susan Mavris HR_REP 204 Hermann Baer PR_REP 205 Shelley Higgins AC_MGR 206 William Gietz AC_ACCOUNT 100 Steven King AD_PRES (2) the lookup table:
SQL> create table lookup_table as 2 select job_id, job_title 3 from hr.jobs; Table created SQL> select * from lookup_table; JOB_ID JOB_TITLE ---------- ----------------------------------- AD_PRES President AD_VP Administration Vice President AD_ASST Administration Assistant FI_MGR Finance Manager FI_ACCOUNT Accountant AC_MGR Accounting Manager AC_ACCOUNT Public Accountant SA_MAN Sales Manager SA_REP Sales Representative PU_MAN Purchasing Manager PU_CLERK Purchasing Clerk ST_MAN Stock Manager ST_CLERK Stock Clerk SH_CLERK Shipping Clerk IT_PROG Programmer MK_MAN Marketing Manager MK_REP Marketing Representative HR_REP Human Resources Representative PR_REP Public Relations Representative 19 rows selected
(3) generate us the document search and store it in the XML DB repository (so that it can be referenced in the XSLT):
SQL> show user User is "dev" SQL> SQL> declare 2 res boolean; 3 begin 4 res := dbms_xdb.CreateResource( 5 abspath => '/public/temp/lookup.xml', 6 data => dburitype('/DEV/LOOKUP_TABLE').getXML 7 ); 8 commit; 9 end; 10 / PL/SQL procedure successfully completed SQL> set long 10000 SQL> select xdburitype('/public/temp/lookup.xml').getCLOB() from dual; XDBURITYPE('/PUBLIC/TEMP/LOOKU --------------------------------------------------------------------------------
AD_PRES President AD_VP Administration Vice President AD_ASST Administration Assistant FI_MGR Finance Manager FI_ACCOUNT Accountant AC_MGR Accounting Manager AC_ACCOUNT Public Accountant SA_MAN Sales Manager SA_REP Sales Representative PU_MAN Purchasing Manager PU_CLERK Purchasing Clerk ST_MAN Stock Manager ST_CLERK Stock Clerk SH_CLERK Shipping Clerk IT_PROG Programmer MK_MAN Marketing Manager MK_REP Marketing Representative HR_REP Human Resources Representative PR_REP Public Relations Representative (4) the sheet XSLT stylesheet (stored in XDB repository as well): emp.xsl
The transformation is rather bland, but the interesting part lies in access to external document within it.
I used a key to index the JOB_ID/function pairs.(5) last step, apply the transformation:
SQL> select xmlserialize(document 2 xmltransform( 3 xmltype(bfilename('DUMP_DIR','emp.xml'),nls_charset_id('AL32UTF8')), 4 xdburitype('/public/temp/emp.xsl').getXML() 5 ) as clob indent 6 ) 7 from dual; XMLSERIALIZE(DOCUMENTXMLTRANSF --------------------------------------------------------------------------------
Donald OConnell Shipping Clerk Douglas Grant Shipping Clerk Jennifer Whalen Administration Assistant Michael Hartstein Marketing Manager Pat Fay Marketing Representative Susan Mavris Human Resources Representative Hermann Baer Public Relations Representative Shelley Higgins Accounting Manager William Gietz Public Accountant Steven King President The input document is transformed and each job_id is replaced by its corresponding label.
-
I have an application that loads an XML file information and displays in a dynamic text box. Which works very well. Now, I want to add tags HTML of the information contained in the XML file for the dynamic text box will format. If I add html right:
< Answer1 > Earth, < b > < /b > air, fire and water. < / Answer1 >
I get a null value in the text box. If I encode
< Answer1 > Earth, & gt; b & lt; Air & gt; / & lt; fire and water. < / Answer1 >
It then displays
Earth, the < b > < /b > air, fire and water.
No help on how to code html embedded in an XML document, so a dynamic text box using the html code?
Thank you.Just use CDATA tags around your HTML values, for example:
air, fire and water.]] > HTH.
-
Loading the XML file with the missing elements dynamically by ODI
Hi guys,.
I have the XML with two nodes Employee and address below. On a daily basis, sometimes the address element might not come from the source xml file, but my interface has columns mapped to the elements of the address, and that is why it may fail because of the source element is not found in the file or data could not get charged because the State 'and' in the sql query that is generated between the employee and address elements. Is there a way where I can load the data dynamically where I can search in the file only for items (used) present and dynamically loading data only for these items?
XML file:
<? XML version = "1.0" encoding = "UTF-8"? >
< EMP >
< Empsch >
< employee >
< EmployeeID 12345 > < / EmployeeID >
< original > t < / initials >
John < name > < / LastName >
DOE < FirstName > < / name >
< / employee >
< address >
< > 12345 as WorkPhone < / as WorkPhone >
< WorkAddress > test 234 < / WorkAddress >
< / address >
< / Empsch >
< / EMP >
Thank you
Fabien Tambisetty
I managed to solve it by using left outer joins, and in referring to the structure of the table of the XSD
-
Hello everyone,
my company is using PDF documents with hyperlinks to Lotus Notes databases.
When I open one of these files with Adobe Reader Default Setup, I can not open the hyperlinks.
When I disable the safe_mode at startup, it is possible to open links.
To ensure safety, we try to set the trust for our Notes Server site, but I couldn't find a solution.
Our servers work with Lotus Notes 9, customers use the Version 8.5.3.
Clients are installed with Windows 7 Enterprise.
We test with Adobe Reader DC, Version 2015.007.20033
Thanks for your support in this matter.
Thank you in advance everybody!
Hi oliverh33447604,
Open Acrobat Reader DC, navigate to the Edit-> Preferences-> Trust Manager menu-> settings
Use the option of the customer to add to the list of Web sites.
Kind regards
Nicos
-
Generate the XML file with elements and attributes in table Oracle
Hello
I have the following table structure.
CREATE TABLE SPOOL
(
COIL_ID NUMBER (10),
COIL_NUMBER VARCHAR2 (40),
COIL_PO_OPERATING_UNIT VARCHAR2 (20).
COIL_PO_NUMBER VARCHAR2 (40),
MILL_NUMBER VARCHAR2 (2),
MILL_COIL_STATUS VARCHAR2 (15).
ITEM_NUMBER VARCHAR2 (40),
COIL_WEIGHT NUMBER (38),
WEIGHT_UOM VARCHAR2 (10),
DOCUMENT_NUMBER VARCHAR2 (40),
DATE OF DOCUMENT_DATE,
DOCUMENT_STATUS VARCHAR2 (15).
DOCUMENT_TYPE VARCHAR2 (20).
DOCUMENT_SOURCE VARCHAR2 (20).
TEST_ID NUMBER (38),
NUMBER VALUE,
TEST_UOM VARCHAR2 (20).
TEST_STATUS VARCHAR2 (70).
TESTER_LOGIN VARCHAR2 (20).
EQUIPMENT_CODE VARCHAR2 (50).
DOC_STS_MSG VARCHAR2 (600)
)
/
For each record COILID, there could be several folders baased on TEST_ID/VALUE/TEST_UOM etc.
And I would like to prepare the xml file in the following format by selecting data in the COIL?
<? XML version = "1.0"? >
-coil xsi: noNamespaceSchemaLocation = "www.tempel.com/COIL.xsd" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xdb = "http://xmlns.oracle.com/xdb" >
< CoilId > 1419532 < / CoilId >
< CoilNo > D2221050010A0 < / CoilNo >
Changzhou < CoilPOOperatingUnit > < / CoilPOOperatingUnit >
< CoilPONo > 4619 < / CoilPONo >
< MillNo > 86 < / MillNo >
Test of < MillCoilStatus > < / MillCoilStatus >
C5 050FP800 < ItemNo > < / ItemNo >
< weight > 7076 < / weight >
KILOGRAM of < GLU > < / UDM >
< DocumentNo > 0 < / DocumentNo >
< DocumentDate > 2013 - 01 - 11 < / DocumentDate >
< DocumentStatus > not < / DocumentStatus >
< DocumentType > test < / DocumentType >
CHIGMA1 < DocumentSource > < / DocumentSource >
< DocStsMsg test = '0' EquipmentCode = "CHIGMA1" TesterLogin = "dpkrueger" Value = "0.4992" TestUnit = "mm" Status = 'NonProcessed' TestId = "135" / >
< test DocStsMsg = '0' EquipmentCode = "CHIGMA1" TesterLogin = "dpkrueger" Value = "0.0128" TestUnit = "mm" Status = 'NonProcessed' TestId = "124" / >
< DocStsMsg test = '0' EquipmentCode = "CHIGMA1" TesterLogin = "dpkrueger" Value = "12" TestUnit = "mm" Status = 'NonProcessed' TestId = "125" / >
< DocStsMsg test = '0' EquipmentCode = "CHIGMA1" TesterLogin = "dpkrueger" Value = "0.5095" TestUnit = "mm" Status = 'NonProcessed' TestId = "127" / >
< DocStsMsg test = '0' EquipmentCode = "CHIGMA1" TesterLogin = "dpkrueger" Value = "0.5042" TestUnit = "mm" Status = 'NonProcessed' TestId = "128" / >
< DocStsMsg test = '0' EquipmentCode = "CHIGMA1" TesterLogin = "dpkrueger" Value = "0.5058" TestUnit = "mm" Status = 'NonProcessed' TestId = "129" / >
< DocStsMsg test = '0' EquipmentCode = "CHIGMA1" TesterLogin = "dpkrueger" Value = "0.4967" TestUnit = "mm" Status = 'NonProcessed' TestId = "130" / >
< DocStsMsg test = '0' EquipmentCode = "CHIGMA1" TesterLogin = "dpkrueger" Value = "0.5049" TestUnit = "mm" Status = 'NonProcessed' TestId = "131" / >
< DocStsMsg test = '0' EquipmentCode = "CHIGMA1" TesterLogin = "dpkrueger" Value = "0.4972" TestUnit = "mm" Status = 'NonProcessed' TestId = "132" / >
< DocStsMsg test = '0' EquipmentCode = "CHIGMA1" TesterLogin = "dpkrueger" Value = "0.4960" TestUnit = "mm" Status = 'NonProcessed' TestId = "133" / >
< DocStsMsg test = '0' EquipmentCode = "CHIGMA1" TesterLogin = "dpkrueger" Value = "0.4996" TestUnit = "mm" Status = 'NonProcessed' TestId = "134" / >
< / reel >
Can you please guide me how to do it in a single query?
Thanks in advance.Function EXTRACT will force a print in your version:
SELECT XMLElement("Coil", XMLAttributes( 'http://www.w3.org/2001/XMLSchema-instance' as "xmlns:xsi" , 'www.tempel.com/COIL.xsd' as "xsi:noNamespaceSchemaLocation" ) , XMLForest( COIL_ID as "CoilId" , COIL_NUMBER as "CoilNo" , COIL_PO_OPERATING_UNIT as "CoilPOOperatingUnit" , COIL_PO_NUMBER as "CoilPONo" , MILL_NUMBER as "MillNo" , MILL_COIL_STATUS as "MillCoilStatus" , ITEM_NUMBER as "ItemNo" , COIL_WEIGHT as "Weight" , WEIGHT_UOM as "UOM" , DOCUMENT_NUMBER as "DocumentNo" , DOCUMENT_DATE as "DocumentDate" , DOCUMENT_STATUS as "DocumentStatus" , DOCUMENT_TYPE as "DocumentType" , DOCUMENT_SOURCE as "DocumentSource" ) , XMLAgg( XMLElement("Tests", XMLAttributes( DOC_STS_MSG as "DocStsMsg" , EQUIPMENT_CODE as "EquipmentCode" , TESTER_LOGIN as "TesterLogin" , VALUE as "Value" , TEST_UOM as "TestUnit" , TEST_STATUS as "Status" , TEST_ID as "TestId" ) ) ) ).extract('/*') FROM coil GROUP BY COIL_ID , COIL_NUMBER , COIL_PO_OPERATING_UNIT , COIL_PO_NUMBER , MILL_NUMBER , MILL_COIL_STATUS , ITEM_NUMBER , COIL_WEIGHT , WEIGHT_UOM , DOCUMENT_NUMBER , DOCUMENT_DATE , DOCUMENT_STATUS , DOCUMENT_TYPE , DOCUMENT_SOURCE ;
Maybe you are looking for
-
outrageous my iphone 6 does not work my touch screen is out and they don't want to fix it!
the touch screen does not work for a month, and apple won't fix! its warranty. I have never been believed that apple do! 700 euros I paid for the phone is SCANDALOUS!
-
problem of installing active sync 6.1 64-bit with active sync. you have a known issue with the compatibility. you have a work around where the way to get these two together?
-
Original title: problem with Vista There is this error message whenever he starts to the top and pop up at any time. "Host process for Windows services stopped working and was closed". "a problem caused the application to stop working correctly. How
-
Language Spanish settings not always work / config al castellano no siempre works
Tengo a teclado in frances, pero como escribo in castellano, siempre debo hacer el cambio of the config: Control Panel, y aqui change a castellano. Don't con esto no suelo tener problemas, pero A VECES, aun cuando hago el cambio al castellano, el tec
-
Typekit Adobe does not canvas HTML online,
Typekit Adobe does not work with canvas animate CC. I have a Typekit account, I added the url in the publication settings. I have a dynamic Textfield with Typekit fonts. I try and try and try.