XML to Clob convertion
Hi ,
I have a table which has a XML data type column, i need to select this coulumn and return it in CLOB type.
I know that I can convert CLOB to XML format using function Sys.Xmltype.Createxml, but I want the revrese.
Please help me on this.
Thanks
XMLType.getClobval() perhaps?
Regards
Peter
Example from docs:
(http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14259/xdb04cre.htm#g1050045)
CREATE TABLE xml_table OF XMLType;
Table created.
CREATE TABLE table_with_xml_column (filename VARCHAR2(64), xml_document XMLType);
Table created.
INSERT INTO xml_table
VALUES (XMLType(bfilename('XMLDIR', 'purchaseOrder.xml'),
nls_charset_id('AL32UTF8')));
1 row created.
INSERT INTO table_with_xml_column (filename, xml_document)
VALUES ('purchaseOrder.xml',
XMLType(bfilename('XMLDIR', 'purchaseOrder.xml'),
nls_charset_id('AL32UTF8')));
1 row created.
SELECT x.xml_document.getCLOBVal() FROM table_with_xml_column x;Edited by: Peter on Jun 23, 2009 3:11 AM
Similar Messages
-
Storing and searching XML in CLOBs
Speaking to an oracle employee at the Oracle booth at JavaOne
recently. They suggested I store XML in CLOBs
and use the DOM or SAX to reparse the XML later as needed.
I agreed that this was the best solution for my problem
(which was how to manage many different XML documents using many
different DTDs in a document management system)
The big problem was searching this document repository
to locate relevant information.
This is where Intermedia seemed ideal (still does).
It would be nice to see an example of setting this up using
Intermedia in Oracle 8i, demonstrating how to define the
XML_SECTION_GROUP and where to use a ZONE as opposed to a FIELD
etc.
Anybody care to take a shot at this ????
For example:
How would I define Intermedia parameters
so that I would be able to search my CLOB
column for records that had the <keyword>
"aorta" and "damage" in the <caption>
using the following
XML (DTD implied)
<image filename="OurImageName.gif">
<fname>WellKnownFileName.gif</fname>
<keyword>echocardiogram</keyword>
<keyword>aorta</keyword>
<caption>This is an image of the vessel damage</caption>
</image>
Thanks
Thomas Bennett
nullEric (guest) wrote:
: You can't do XML structure-based searches with intermedia. You
: can search for text within a given element, but nothing more
: complicated than that.
The example he gave involves exactly that -- searching for
text within XML elements. interMedia can do this.
: It also does not do attributes.
Upcoming 8.1.6 version allows searching within
attribute text. That's something like:
dog within book@author
We're working on attribute value sensitive search,
more like:
dog within book[@author = "Eric"]
: Thomas Bennett (guest) wrote:
: : How would I define Intermedia parameters
: : so that I would be able to search my CLOB
: : column for records that had the <keyword>
: : "aorta" and "damage" in the <caption>
: : using the following
: : XML (DTD implied)
: : <image filename="OurImageName.gif">
: : <fname>WellKnownFileName.gif</fname>
: : <keyword>echocardiogram</keyword>
: : <keyword>aorta</keyword>
: : <caption>This is an image of the vessel damage</caption>
: : </image>
begin
ctx_ddl.create_section_group('mygrp','basic_section_group');
ctx_ddl.add_field_section('mygrp','keyword','keyword');
ctx_ddl.add_field_section('mygrp','caption','caption');
end;
create index myidx on mytab(mytxtcolumn)
indextype is ctxsys.context
parameters ('section group mygrp');
select * from mytab
where contains(mytxtcolumn, 'aorta within keyword')>0;
options:
* use XML section group instead of basic section group
if your tags have attributes or you need case-sensitive
tag detection
* use zone sections instead of field sections if your
sections overlap, or if you need to distinguish
between instances. For instance, keywords. If keywords
is a field section, then
(aorta and echocardiogram) within keywords
finds the document. if it is a zone section, then it
doesn't, because they are not in the SAME instance of
keywords.
null -
I’m building some ETL process to extract data from XML in CLOB columns. I know that there are solutions to use functions as extractvalue() of WB_XML_LOAD(), but I want to know if there is any other way to deal with XML. The reason for that is because my XML files have multiple namespaces and nodes, and I need something more complex to deal with that, since I already tried those two first solutions.
My first solution was to create a PL/SQL that parses the XML and looks for tags and elements. It populates a relational table, and I might use OWB to extract the data from this table. But I’m dealing with a large table and it takes a while for processing, plus my code is hude!
My question is: Does someone have any experience with complex XML in Clob columns? If so, what was your solution for that?
Thanks a lot!
Angelo Buss
[email protected]CLOB is a fully-updateable, character large object that is stored inside the database. It can be text-indexed using interMedia for document searching.
BFILE is a readonly pointer to a file on the external file system whose content is not physically stored in the database. It can also be text-indexed for document searching, but it can't be updated. -
Could somebody tell me the different between save XML in CLOB and BFILE, addition to generic different between CLOB and BFILE, is there a performance issue?
ThanksCLOB is a fully-updateable, character large object that is stored inside the database. It can be text-indexed using interMedia for document searching.
BFILE is a readonly pointer to a file on the external file system whose content is not physically stored in the database. It can also be text-indexed for document searching, but it can't be updated. -
I have one requirement .which is JMS XML file should convert to Flat file
HI Gurus,
My Scenario is
sender SAP ---> receiver MF( Mainframe) ..
I have one requirement i will get IDOC from SAP sender pass throw PI to Mainframe... which is recevier's JMS XML file should convert to Flat file...
plz guide me any related suggestion and related links .... how to achieve..
Thanks in advance..>
> My Scenario is
> sender SAP ---> receiver MF( Mainframe) ..
>
> I have one requirement i will get IDOC from SAP sender pass throw PI to Mainframe... which is recevier's JMS XML file should convert to Flat file...
>
Where is MQ coming in to picture here, You receiving data from SAP and sending Main Frame system,as per your post.
so we can SAP->PI-->MAINFRAMES.most of the times we sent data to main frame system in the form of test files,so you can use receiver adapter file and use file content conversion.
thats it.
Regards,
Raj -
Extract part of xml into CLOB or XMLType
I need to extract part of XML into CLOB or some another type. But I don't need only extract data, by whole part od xml with elements. How could I do it in PL/SQL?
For example from this xml:
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
I need to get:
"<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>"
THXThat's why I need to process every book alone - to know which authors belongs to single book.For that specific requirement, a single query would do.
Assuming variable "v_xml_clob" holds the XML document :
<bookstore>
<name>nameOfBookstore</name>
<address>1st Avenue 24, SF</address>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>
<name>Giada De Laurentiis</name>
<birth>1956</birth>
</author>
<author>
<name>xxx</name>
<birth>1955</birth>
</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>
<name>Rowning</name>
<birth>1977</birth>
</author>
<author>
<name>xxx</name>
<birth>1955</birth>
</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>You can do :
SELECT *
FROM XMLTable(
'for $i in distinct-values($d//book/author/name)
where count($d//book/author[name=$i]) = 1
return $i'
passing xmltype(v_xml_clob) as "d"
columns author_name varchar2(80) path '.'
AUTHOR_NAME
Rowning
Giada De Laurentiis -
Migrating V9 to V10: Update XML Fragment CLOB does not work anymore
I have an XML Schema that contains an element, named Operazione, mapped to a CLOB.
I just migrate to Oracle 10.1.0.2.0 from version 9.2.0.2.0 and the code I developed does not work anymore.
To get a CLOB on v 9.2.0.2.0 I issued the following statement:
select extractValue(value(p),'/operazione.log/Operazione') from XMT_OPERAZIONE_LOG p
where existsNode(value(p),'/operazione.log/Journal[NumeroElettronico=1234567890]') = 1
To make it working on V10 I have to change it as follow:
select extract(value(p),'/operazione.log/Operazione').getClobVal() from XMT_OPERAZIONE_LOG p
where existsNode(value(p),'/operazione.log/Journal[NumeroElettronico=1234567890]') = 1
So using extract intead of extractValue and adding getClobVal() I was able to read the CLOB.
The problem that I was not able to solve is related to CLOB update. In V9 just adding the âfor updateâ clause I was able to change the CLOB value on DB.
In V10 if I run the V9 statement I get the error:
ORA-03113: end-of-file on communication channel
If I use the statement modified for V10, adding the âfor updateâ clause, I get the CLOB and I can change the CLOB value but nothing goes on the DB. Probably I am working on a copy of the DB CLOB.
If I remove the getClobVal() I get an OPAQUE type that I can use on a XMLType but, still, nothing is stored on DB.
Any suggestion ?
I tried with both OCI and Thin ClientCan anybody help me ?
Is it better to use different strategies ( eg. Stored Procedure, DBMS_XMLSTORE etc, etc. ) ?
Any experience updatating XML Fragment CLOB on Oracle V10 ? -
How can I parse XML from CLOB field? I need to replace or delete the node from XML document and update the database with new XML. I am using Oracle 9i release 2.
Here is the XML. In this XML if section1 and section2 exists then I need to delete the section1 node. If section2 doesn't exist, replace section1 with section2 node.
<Document ID='2' TypeID='2'>
<Body>
<Page Name='Page1'>
<Sec ID='section1' Title='Section 1' GroupID='' />
<Sec ID='section2' Title='Section 2' GroupID='' />
</Page>
</Body>
</Document>
Please help.. Thank you..In 9.2, you are limited into your options. Have a look into, among others, updateXML. Updating tp 10gR2 will give you more options to succeed.
-
CLOB Converter marking AM dirty
We are using JDeveloper with the following version information for ADF BC development.
Oracle IDE: 11.1.1.2.36.55.36
ADF Business Components: 11.1.1.55.36
Java(TM) Platform: 1.6.0_14
Versioning Support: 11.1.1.2.36.55.36
Currently, we are attempting to allow users to change the contents of a CLOB via the following control:
<af:richTextEditor id="rte1"
label="#{bindings.SourceOppDesc.hints.label}"
value="#{bindings.SourceOppDesc.inputValue}"
rows="#{bindings.SourceOppDesc.hints.displayHeight}"
columns="#{bindings.SourceOppDesc.hints.displayWidth}"
converter="oracle.genericDomain"/>When we navigate to an existing record and no changes are made by the user the application module is being marked as dirty. Which then prevents the user from leaving the record. The user then naturally hits cancel which triggers a rollback of the application module and should clear the dirty flag, but it doesn't. The only options left to the user are to logout, closing the session, or save the record which didn't really have any changes.
The only error we are getting in the log or via the UI are:
<FormRenderer><setupEncodingContext> Multiple forms detected on viewId: /testAdmin.jspx. Rich client currently has some limitations in dealing with multiple forms.What make this even more vexing is that it seems to happen more consistently on the first record visited and almost never on subsequent records.
Does anyone have any ideas as to what the cause is and/or how it might be fixed?
Thank you in advance for your time, assistance and ideas.
Steve SaxerIt was found that the Rich Text Editor (RTE) component is attempting to fix poorly formed HTML which was pasted into the field. It has nothing to do with the CLOB Converter and explains the intermittent occurrence we were seeing.
Each time a record with the poorly formed HTML is rendered in the RTE, it attempts to fix it on the client and thus the record is marked as dirty. The fix done by the RTE is frequently insufficient or inaccurate. The only thing that seems to stop this behavior is to manually edit the HTML and correct the issues.
With regards to the fix done by the RTE, this is just one example, we are seeing where incorrect syntax in the CSS of an element has over 20 semi-colons. Each time the record was loaded, the RTE stuck a semi-colon in the same place and marked the record dirty. We then save the record, because it was dirty, and another semi-colon was added the next time the record was re-rendered, page refresh or navigate away and back, in the RTE. The cycle continued until we fixed the syntax.
Is there a way to turn this feature off?
Thanks for time,
Steve -
How to convert an xml data(clob) in database to string format in bpel??
Now I am learning SOA ,I have one scenario which I store the each record in xml format in database from file adapter ,extract the xml data and store the data in another table ...Give me any suggestions which I slove these issue .
Thanks in advance.Hi
You can try the below xpath function to convert the xml into string - orcl:get-content-as-string(/xsdLocal:SAPOrderRequest)
To convert the string back to XML - ora:parseEscapedXML(bpws:getVariableData('stringpayloadVar'))
Regards
Albin I -
Unable to insert XML in CLOB (for Long Lived Processes)
I am trying to insert XML/XDP in a CLOB column of an Oracle Database. It seems to work in a short lived process. However, I get all sorts of errors when I convert it to long lived.
Anyway one know why?
I extract the XML/XDP using a process form submission module and convert it to string. Then, I run the insert through a custom script as setString.
AdityaThis has been an issue in the past. When I try to change the string size to unlimited, it doesn't allow me to save the process. However, when I create a new string variable and assign it to unlimited, it worked.
I am thinking, when the string variable is saved the first time with a limit or a lower limit, it saves it to a Varchar2 and it is unable to change to a different column type when a higher char limit or unlimited it set. Don't you think this is a serious issue in existing processes with lower limits on string variables. Do you know a stable work around?
Also, how can I get value from an XML variable, using a custom script? "patExecContext.getProcessDataValue" doesn't work.
Aditya -
Help with counting XML elements and converting from MS SQL 2008 to ORACLE
Hello,
My ORACLE DB version is:
('Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production');
('PL/SQL Release 11.2.0.2.0 - Production');
('CORE 11.2.0.2.0 Production');
('TNS for Linux: Version 11.2.0.2.0 - Production');
('NLSRTL Version 11.2.0.2.0 - Production');
I'm trying to convert the below SQL Server 2008 query to work on Oracle. It's important to note that the XMLData column type is CLOB.
Query 1)
-- Number of validations
select br.rulename, CAST(( CAST(br.XMLData as XML)).query('count(//Validation/Expressions/Expression)') as nvarchar(50)) as "Number of //Validation/Expressions/Expression"
from AsBusinessRules br
where
DATALENGTH(br.XMLData)>10
and CAST(( CAST(br.XMLData as XML)).query('count(//Validation/Expressions/Expression)') as nvarchar(50)) not like '0'
Any help is greatly appreciated.Hi,
You can try one of these :
select br.rulename
, count(*) as "Num. of Expression"
from AsBusinessRules br
, xmltable(
'//Validation/Expressions/Expression'
passing xmltype(br.XMLData)
) x
where length(br.XMLData) > 10
group by br.rulename
having count(*) != 0
;or,
select br.rulename
, xmlcast(
xmlquery(
'count(//Validation/Expressions/Expression)'
passing xmltype(br.XMLData)
returning content
as number
) as "Num. of Expression"
from AsBusinessRules br
where length(br.XMLData) > 10
and xmlcast(
xmlquery(
'count(//Validation/Expressions/Expression)'
passing xmltype(br.XMLData)
returning content
as number
) != 0
It's important to note that the XMLData column type is CLOB.Could you consider migrating the column to XMLType datatype?
Given your version, it would be binary XML by default and therefore a lot more performant with XQueries, compared to a simple CLOB storage. -
Select fields from XML in CLOB column
Hi,
I have the following XML stored in a table as CLOB field. What i want is to select specific fields into Relational Data.
<?xml version=1.0 encoding=UTF-8?>
<msgContext>
<JMSHeaders xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">
<jms1:JMSDeliveryMode>PERSISTENT</jms1:JMSDeliveryMode>
<jms1:JMSTimestamp>1329217943352</jms1:JMSTimestamp>
<jms1:JMSExpiration>0</jms1:JMSExpiration>
<jms1:JMSRedelivered>false</jms1:JMSRedelivered>
<jms1:JMSPriority>4</jms1:JMSPriority>
</JMSHeaders>
<OtherProperties>
<auditPartnerId xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">010000000001189CC2BC2C</auditPartnerId>
<auditServiceId xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">Auth</auditServiceId>
<correlationTransactionId xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">d0022064-1df3-43ef-be5b-93aedc96b3b2</correlationTransactionId>
<auditReceivedDate xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">2012-02-14 12:12:23.346 +0100</auditReceivedDate>
<auditStatus xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">ok</auditStatus>
<auditForwardedDate xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">2012-02-14 12:12:23.351 +0100</auditForwardedDate>
<auditMsisdn xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms"/>
<auditEngineId xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">dpNorthLog</auditEngineId>
<ns0:auditInfo xmlns:ns0="http://www.tibco.com/schemas/Project_gig_reporting/tib_bw_reporting/Resources/Schemas/auditInfo.xsd">
<ns0:dp-logpoint>response</ns0:dp-logpoint>
<ns0:dp-target-url/>
<ns0:dp-port>20565</ns0:dp-port>
<ns0:dp-uri>/comp_am</ns0:dp-uri>
<ns0:dp-size>1365</ns0:dp-size>
<ns0:dp-replytoengine/>
</ns0:auditInfo>
</OtherProperties>
</msgContext>I tried to use the xml_query below with no luck :
SELECT x.auditPartnerId,
x.auditServiceId
FROM source s
, XMLTable(
'/msgContext/OtherProperties'
passing s.messagetext
columns
auditPartnerId VARCHAR2(20) PATH 'auditPartnerId'
, auditServiceId VARCHAR2(20) PATH 'auditServiceId'
) x;Any help appreciatedalekons wrote:
Any help appreciatedYou will have to convert it to xmltype first. See below:
SQL> select * from v$version ;
BANNER
Oracle Database 10g Release 10.2.0.5.0 - Production
PL/SQL Release 10.2.0.5.0 - Production
CORE 10.2.0.5.0 Production
TNS for Linux: Version 10.2.0.5.0 - Production
NLSRTL Version 10.2.0.5.0 - Production
SQL> with src as ( select to_clob('<msgContext>
<JMSHeaders xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">
<jms1:JMSDeliveryMode>PERSISTENT</jms1:JMSDeliveryMode>
<jms1:JMSTimestamp>1329217943352</jms1:JMSTimestamp>
<jms1:JMSExpiration>0</jms1:JMSExpiration>
<jms1:JMSRedelivered>false</jms1:JMSRedelivered>
<jms1:JMSPriority>4</jms1:JMSPriority>
</JMSHeaders>
<OtherProperties>
<auditPartnerId xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">010000000001189CC2BC2C</auditPartnerId>
<auditServiceId xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">Auth</auditServiceId>
<correlationTransactionId xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">d0022064-1df3-43ef-be5b-93aedc96b3b2</correlationTransactionId>
<auditReceivedDate xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">2012-02-14 12:12:23.346 +0100</auditReceivedDate>
<auditStatus xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">ok</auditStatus>
<auditForwardedDate xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">2012-02-14 12:12:23.351 +0100</auditForwardedDate>
<auditMsisdn xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms"/>
<auditEngineId xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">dpNorthLog</auditEngineId>
<ns0:auditInfo xmlns:ns0="http://www.tibco.com/schemas/Project_gig_reporting/tib_bw_reporting/Resources/Schemas/auditInfo.xsd">
<ns0:dp-logpoint>response</ns0:dp-logpoint>
<ns0:dp-target-url/>
<ns0:dp-port>20565</ns0:dp-port>
<ns0:dp-uri>/comp_am</ns0:dp-uri>
<ns0:dp-size>1365</ns0:dp-size>
<ns0:dp-replytoengine/>
</ns0:auditInfo>
</OtherProperties>
</msgContext>') as messagetext from dual )
SELECT x.auditPartnerId,
x.auditServiceId
FROM src s
, XMLTable(
'/msgContext/OtherProperties'
passing s.messagetext
columns
auditPartnerId VARCHAR2(20) PATH 'auditPartnerId'
, AUDITSERVICEID VARCHAR2(20) PATH 'auditServiceId'
) x;
36 37 passing s.messagetext
ERROR at line 33:
ORA-00932: inconsistent datatypes: expected - got CLOB
with src as ( select xmltype(to_clob('<msgContext>
<JMSHeaders xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">
<jms1:JMSDeliveryMode>PERSISTENT</jms1:JMSDeliveryMode>
<jms1:JMSTimestamp>1329217943352</jms1:JMSTimestamp>
<jms1:JMSExpiration>0</jms1:JMSExpiration>
<jms1:JMSRedelivered>false</jms1:JMSRedelivered>
<jms1:JMSPriority>4</jms1:JMSPriority>
</JMSHeaders>
<OtherProperties>
<auditPartnerId xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">010000000001189CC2BC2C</auditPartnerId>
<auditServiceId xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">Auth</auditServiceId>
<correlationTransactionId xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">d0022064-1df3-43ef-be5b-93aedc96b3b2</correlationTransactionId>
<auditReceivedDate xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">2012-02-14 12:12:23.346 +0100</auditReceivedDate>
<auditStatus xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">ok</auditStatus>
<auditForwardedDate xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">2012-02-14 12:12:23.351 +0100</auditForwardedDate>
<auditMsisdn xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms"/>
<auditEngineId xmlns:jms1="http://www.tibco.com/namespaces/tnt/plugins/jms">dpNorthLog</auditEngineId>
<ns0:auditInfo xmlns:ns0="http://www.tibco.com/schemas/Project_gig_reporting/tib_bw_reporting/Resources/Schemas/auditInfo.xsd">
<ns0:dp-logpoint>response</ns0:dp-logpoint>
<ns0:dp-target-url/>
<ns0:dp-port>20565</ns0:dp-port>
<ns0:dp-uri>/comp_am</ns0:dp-uri>
<ns0:dp-size>1365</ns0:dp-size>
<ns0:dp-replytoengine/>
</ns0:auditInfo>
</OtherProperties>
</msgContext>')) as messagetext from dual )
SELECT x.auditPartnerId,
x.auditServiceId
FROM src s
, XMLTable(
'/msgContext/OtherProperties'
passing s.messagetext
columns
auditPartnerId VARCHAR2(20) PATH 'auditPartnerId'
, AUDITSERVICEID VARCHAR2(20) PATH 'auditServiceId'
37 ) x;
AUDITPARTNERID AUDITSERVICEID
010000000001189CC2BC Auth -
XML Import CLOB column size limit
I have a table with a CLOB column and some of the rows have up to 7000 characters in the column. I exported the table to XML and the XML file contains all the data. When I try to import the file into another APEX instance I get the error:
XML Load error.
After some experimentation, I found that If I manually edit the XML to reduce the size of the text to under 4000 characters (3700 in my test), it imports fine.
Is there a way around this limitation? The database I'm migrating has LOTS of CLOB columns (converted from MS Access "memo" fields).jlange,
Having converted a bunch of MS Access applications myself, I would encourage you to look at the Oracle Migration Workbench (OMWB): http://www.oracle.com/technology/tech/migration/index.html
This free tool can be downloaded from OTN, and provides a more streamlined approach to moving the data from MS Access to Oracle, including support for Memos to CLOBs.
Once you're data has been moved over, you can then use ApEx to re-create the UI.
Thanks,
- Scott - -
Hello,
We have encountered a problem:
We are using Windows-1250 codepage (EE8MSWIN1250) with Oracle8i 8.1.7.0. When we use correct string with special characters (from Slovak language) in CLOB, after loading it to the XML parser and retrieving it back from XML parser, we are getting '?' instead of special characters.
The sample showing this problem is following:
DECLARE
xp xmlparser.parser;
xmldoc xmldom.domdocument;
xmlnode xmldom.domnode;
v_params CLOB;
v_in_temp CLOB;
v_buffer VARCHAR(255);
BEGIN
v_buffer := '<?xml version="1.0" encoding="ISO-8859-2"?><unicode name="aš}hžšhžhž}imTotoUzIdeCitat+5ac;l}amin)CN."/>';
v_buffer := CONVERT(v_buffer,'EE8ISO8859P2','EE8MSWIN1250'); --EE8ISO8859P2
xp := xmlparser.newparser;
xmlparser.setValidationMode(xp, FALSE);
xmlparser.setPreserveWhiteSpace(xp, TRUE);
dbms_output.put_line('Input buffer:');
dbms_output.put_line(v_buffer);
dbms_lob.createtemporary(v_in_temp,false);
dbms_lob.write(v_in_temp,LENGTH(v_buffer),1,v_buffer);
dbms_output.put_line('Input CLOB:');
tools.put_clob(v_in_temp);
xmlparser.parseclob(xp,v_in_temp);
-- xmlparser.parsebuffer(xp,v_buffer);
xmldoc := xmlparser.getdocument(xp);
xmlnode := xmldom.makenode(xmldom.getdocumentelement(xmldoc));
--nacitame name a uname procesu
DECLARE o_buffer VARCHAR2(255);
o_clob CLOB;
BEGIN
xmldom.writetoBuffer(xmlnode,o_buffer);
dbms_output.put_line('Output Buffer:');
dbms_output.put_line(o_buffer);
dbms_lob.createtemporary(o_clob,true);
xmldom.writetoClob(xmlnode,o_clob);
dbms_output.put_line('Output Clob:');
tools.put_clob(o_clob);
--?? Why this output clob is not the same as output buffer??
dbms_lob.freetemporary(o_clob);
END;
END;
Does anybody know what we are doing wrong?OK, so that gives me one column with just the <clob>, but I want the data to be parsed back out into it's columns and rows..
So the clob for this column might hold this XML:
<?xml version="1.0"?>
<ROWSET>
<ROW>
<SORCONT_PIDM>99955</SORCONT_PIDM>
<SORCONT_CTYP_CODE>TAP</SORCONT_CTYP_CODE>
</ROW>
</ROWSET>
What I want a query of this one column to produce:
SORCONT_PIDM SORCONT_CTYP_CODE
99955 TAP
Maybe you are looking for
-
Safari won't go to any sites all of a sudden
Using Safari 5 on a G4 MDD under OSX 10.5.8. Safari was working fine. The only thing I did was uninstall Virus Barrier, using the uninstaller from a recent update. After doing that, Safari won't load any sites at all, whether I click on a bookmark or
-
How do I install Adobe Flash Player on Ubuntu 32bit ARMv7 Little Endian machine?
How do I install Adobe Flash Player on Ubuntu (12.04) 32bit ARMv7 Little Endian machine? The .tar.gz and .deb files contains shared libraries for i386 target.
-
Need some project titles that can be done in java servlets and jsp or ejb
I am final year cs engg student. I have completed course in java,j2ee. I have done the library management project in servlet. I need some project titles for my final year project. My interests includes, networking, desktop applications.
-
Using MySql and PHP with Dreamweaver on a Mac
Hello all, As always if the answers to these questions are obscenely obvious please humour me. I use XHTML and CSS in my websites and realise that it is time that I dabbled with SSI. So I've started using PHP. However, I have been following the insta
-
I get a CAT5 error message RU704: Future change records for background processing exist for order. That suggests to run CO1P transaction. 1. What does this CO1P transaction and where it is located in the standard menu? 2. Is it possible that the mess