Replace invalid XML characters using SQL query
Hi,
I am populating a dataset in .net with output from sql 2005 database. One of the columns in the table is a 'varchar(max)' type. This dataset is then converted to XML using WriteXml and written to a .xml document. But due to the presence of invalid characters, this process errors out.
Is there any way using which these invalid characters can be replaced at the database level itself when querying on the table?
The error that is produced is as follows:
'', hexadecimal value 0x1C, is an invalid character. Line 32201, position 924.
Thanks,
Nisha
I see,
So we have a certain character that the XML processor does not like. What do you want to do with this character? Even if you manage to make an XML file wth this some how, you will get the same problem when another application tries to read it.
Probably you should replace those characters before converting the values to XML.
Another option is to put the values to the CDATA. This will be tough because the query might be little tricky. Here is an example that might help you.
Code Snippet
CREATE TABLE CDataTest (SomeValue NVARCHAR(50))
INSERT INTO CDataTest (SomeValue) SELECT 'Some Value ' + CHAR(25) + 'Some OtherValue'
SELECT * FROM CDataTest FOR XML AUTO, TYPE
error!!!
FOR XML could not serialize the data for node 'SomeValue' because it contains
a character (0x0019) which is not allowed in XML. To retrieve this data using
FOR XML, convert it to binary, varbinary or image data type and use the
BINARY BASE64 directive.
-- option using CDATA
SELECT
1
AS Tag,
NULL AS Parent,
(SELECT
SomeValue AS 'data()'
FROM CDataTest
FOR XML PATH('')) AS 'SomeValue!1!SomeValue!cdata'
FROM CDataTest
FOR XML EXPLICIT, TYPE
<SomeValue>
<SomeValue><![CDATA[Some Value Some OtherValue]]></SomeValue>
</SomeValue>
Similar Messages
-
How to get tax break up of TDS using SQL query ?
Hi all,
We are developing a TDS report using SQL query
Report will contain VendorCode,Date(ap inv date),Vendor name,
Bill value,TDS Amount,
Bill Value 100.000,
TDS (2%) - 2.000,
TDS Surcharge(10% on TDS) - 0.2,
TDS Cess(2%(TDS+TDS Surcharge)) - 0.044,
TDS HeCess(1%(TDS+TDS Surcharge)) - 0.022.
We have developed this report which displays upto
VendorCode,Date(ap inv date),Vendor name,
Bill value,TDS Amount.
How to show tax break up of TDS in SQL query ?
Thanks,
With regards,
Jeyakanthan.Hi gauraw,
Thank for your reply.
I modified the query , pasted the query
as below in query generator,
Select T0.DocNum,T0.DocDate,T0.CardCode as 'Ledger',T1.TaxbleAmnt As 'Bill value',T1.WTAmnt as 'TDSAmt',(TDSAmt * 0.1) as 'TDS_Surch',
(((TDSAmt0.1) + TDSAmt)0.02) as 'TDSCess',
(((TDSAmt0.1) + TDSAmt)0.01) as 'TDSHCess'
FROM OPCH T0 INNER JOIN PCH5 T1 ON T0.DocEntry = T1.AbsEntry
WHERE (T0.DocDate >= '[%0]' and T0.DocDate <= '[%1]')
on clicking execute its showing error message invalid column
name 'TDSAmt'.
With regards,
Jeyakanthan -
Problem loading XML-file using SQL*Loader
Hello,
I'm using 9.2 and tryin to load a XML-file using SQL*Loader.
Loader control-file:
LOAD DATA
INFILE *
INTO TABLE BATCH_TABLE TRUNCATE
FIELDS TERMINATED BY ','
FILENAME char(255),
XML_DATA LOBFILE (FILENAME) TERMINATED BY EOF
BEGINDATA
data.xml
The BATCH_TABLE is created as:
CREATE TABLE BATCH_TABLE (
FILENAME VARCHAR2 (50),
XML_DATA SYS.XMLTYPE ) ;
And the data.xml contains the following lines:
<?xml version="2.0" encoding="UTF-8"?>
<!DOCTYPE databatch SYSTEM "databatch.dtd">
<batch>
<record>
<data>
<type>10</type>
</data>
</record>
<record>
<data>
<type>20</type>
</data>
</record>
</batch>
However, the sqlldr gives me an error:
Record 1: Rejected - Error on table BATCH_TABLE, column XML_DATA.
ORA-21700: object does not exist or is marked for delete
ORA-06512: at "SYS.XMLTYPE", line 0
ORA-06512: at line 1
If I remove the first two lines
"<?xml version="2.0" encoding="UTF-8"?>"
and
"<!DOCTYPE databatch SYSTEM "databatch.dtd">"
from data.xml everything works, and the contentents of data.xml are loaded into the table.
Any idea what I'm missing here? Likely the problem is with special characters.
Thanks in advance,I'm able to load your file just by removing the second line <!DOCTYPE databatch SYSTEM "databatch.dtd">. I dont have your dtd file, so skipped that line. Can you check if it's problem with ur DTD?
-
Convert invalid xml characters to HTML-Entity
Hi,
How can i convert invalid XML characters like �,�,�, . . . to the HTML- Entity ä ü ö ?
Is there any Method or class who can handle an input string and transform the invalid characters?
Or is there another way to mask this characters so that an XML parser do not throw an error when parsing the document.
Best regards,
MichaelOk sorry, I'll give you more details what i want to do and where i have the problems.
I have the following xml string:
<font family="Times New Roman" size="14" color="#333333">This is a sample Text</font>
The xml-string can contain any characters because the content is from a text pane where the user can type in any characters.
I use the DOM parser to parse this input string to get the attributes and the text content.
And thats my problem, how can i make sure that this string wont throw any exceptions when i parse it with DOM?
Parsing the string with the follwing code:
public XMLElement parse(String sourceString)
//create a new xml element
XMLElement xmlElement = new XMLElement();
//create a new document
DocumentBuilder builder = build();
//now parse the string into the document
InputStream is = new ByteArrayInputStream(sourceString.getBytes());
Document document = null;
try
document = builder.parse(is);
catch (SAXException e)
System.out.println("SAXError while parsing the document");
e.getMessage();
//no valid document
return null;
catch (IOException e)
System.out.println("IO Error while parsing the document");
e.getMessage();
//no valid document
return null;
//get the element
org.w3c.dom.Element element = document.getDocumentElement();
if (element != null)
xmlElement.setNodeName(element.getNodeName());
xmlElement.setNodeValue(element.getTextContent());
//attributes defined?
int length = element.getAttributes().getLength();
//get the attributes, if defined
for (int i = 0; i < length; i++)
xmlElement.addAttribute(
element.getAttributes().item(i).getNodeName(),
element.getAttributes().item(i).getTextContent());
return xmlElement;
} XMLElement is my own class.
The builder:
private DocumentBuilder build()
DocumentBuilder docBuilder = null;
try
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
docBuilder = factory.newDocumentBuilder();
catch(ParserConfigurationException pce)
System.out.println("Error while creating an DocumentBuilder");
pce.getMessage();
//return the document builder
return docBuilder;
}Message was edited by:
heissm - spelling mistakes :( -
Retreving Hexadecimal Values from a table using SQL query.
Hi,
I'm looking for a query to retreive Hexadecimal values contained in a column using SQL query.
The column contains the values of all types, alphanumeric, numeric and hexadecimal.
I need to retreive only hexadecimal values.
any help to me in this regard will be appreciated.
ThanksPresumably, you can be sure that any valid hex value is indeed MEANT to BE a hex value. For example the value 'ACE' is meant to be a hexadecimal value and not the word.
-
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 to retrive the blob data from a table using sql query
Hi gurus,
I have a table which has " BLOB "content in a column .I want to view the data From BLOB column using sql query .It would be helpfull If some one share their idea.
Regards,
vardhani.You can use data templates.
See this: http://blogs.oracle.com/xmlpublisher/entry/blob_clob_raw_and_looooong
http://blogs.oracle.com/xmlpublisher/entry/inserting_blobs_into_your_repo
Thanks,
Bipuser -
How to use sql query in java ?
i don't know how to use sql query in java code.
who can give me some advice?
thankshttp://java.sun.com/developer/onlineTraining/Database/JDBC20Intro/
-
hi i am face with problem that is i want to show the how much approximate space required for backup or .bak file to get backup using sql query because i want to show the required memory for backup file on my java application
Hi FIROZ
TENNALI
Is this still an issue, or can we close the thread?
* closing a thread by marking the answer/s (there is a link beneath each response) and you can vote for useful responses as well (there is a link to vote on the left of each response)
Ronen Ariely
[Personal Site] [Blog] [Facebook] -
How to Use SQL Query having IN Clause With DB Adapter
Hi,
I am using 11.1.1.5 want to find out how to Use SQL Query having IN Clause With DB Adapter. I want to pass the IN values dynamically. Any ideas.
Thanksinvoke a stored procedure, it's safer than trying to put together an arbitrary SQL statement in the JCA adapter
-
Using SQL query on user defined table
Hi all,
i'am currently working on a project which use user defined table and i would like to know if sap allow us to do insertion/deletion/update on those table using sql query or if we have to use the DI only?
thanks
Best regards,Hi,
Definitely you can insert in UDT. You can update but you cant change the Code field after added the rest of the field
can be updated. You cant delete in UDT but you cant delete anytime in SQL Management Studio.
THanks.
CLint -
How to numberformat when using sql:query alogn with c:forEach JSTL tags
Is there anyway to format the numeric values returned from the database when using <sql:query> alogn with <c:forEach> tags
Here is my jsp code
<sql:query..../>
<c:forEach var="row" items="${queryResults.rows}">
<tr>
<td><c:out value="${row.COL1}" /></td>
<td><c:out value="${row.COL2}" /></td>
</tr>
</c:forEach>
Col1 values are numeric without any formats Eg: 1000, 10000, 1000000 etc.
how can i format them to 1,000 , 10,1000 , 100,000 etcIt is polite to mention what your answer was. These posts are not just here for you to ask questions, but to be used as a resource for other people to find answers. Saying "I solved it" with no details helps noone.
I presume you discovered the JSTL <fmt:formatNumber> tag? -
List of Project Permission in PS 2010 Using SQL query
Hi
Is there any way to get a list of Project permissions associated with user using sql query. If i go manually Project center --> select project plan --> project permission it would take lot of time to find out for each user
Regards
SantoshBefore you continue (which you probably will overlook) - please understand that you should only be querying the REPORTING database and not the published database. A recommendation is to use a select statement statement to insert the tables into a table
int the reporting database, then query that table for your results/report.
The following page I believe has what you're looking for (Users with direct permissions- query below)
and more
http://pmpspecialists.com/Blog/2013/10/
SELECT MSP_RESOURCES.RES_NAME AS Resourcename, CONV.CONV_STRING AS Permission, MSP_WEB_SECURITY_SP_CAT_PERMISSIONS.WSEC_DENY AS Denied,
MSP_WEB_SECURITY_SP_CAT_PERMISSIONS.WSEC_ALLOW AS Allowed
FROM MSP_WEB_SECURITY_SP_CAT_PERMISSIONS INNER JOIN
MSP_WEB_SECURITY_SP_CAT_RELATIONS ON
MSP_WEB_SECURITY_SP_CAT_PERMISSIONS.WSEC_REL_UID = MSP_WEB_SECURITY_SP_CAT_RELATIONS.WSEC_REL_UID INNER JOIN
MSP_WEB_SECURITY_FEATURES_ACTIONS ON
MSP_WEB_SECURITY_FEATURES_ACTIONS.WSEC_FEA_ACT_UID = MSP_WEB_SECURITY_SP_CAT_PERMISSIONS.WSEC_FEA_ACT_UID INNER JOIN
MSP_WEB_CONVERSIONS AS CONV ON CONV.CONV_VALUE = MSP_WEB_SECURITY_FEATURES_ACTIONS.WSEC_FEA_ACT_NAME_ID INNER JOIN
MSP_RESOURCES ON MSP_WEB_SECURITY_SP_CAT_RELATIONS.WSEC_SP_GUID = MSP_RESOURCES.RES_SECURITY_GUID
WHERE (CONV.LANG_ID = 1033)
ORDER BY Resourcename, Permission -
How to show the VALUE as the Column Header using SQL query?
Hi
I have a requirement to show the picked value as the column header using SQL query.
Example:
======
SELECT EMPNO FROM EMP
WHERE EMPNO=7934;
Result Should be:
7934
7934I have a requirement to show the picked value as the column header using SQL query.In sql*plus you can do
SQL> set verify on
SQL> def e = 7934
old: SELECT empno "&&e" FROM emp WHERE empno = &&e
new: SELECT empno "7934" FROM emp WHERE empno = 7934
SQL> SELECT empno "7934" FROM emp WHERE empno = 7934
7934
7934
1 row selected. -
How to backup database using sql query?
Hello,i'm student, i'm researching oracle database,i want to backup database that using sql query (like backup query in SQL SERVER) ,how to do that ??
Thank!No, database backups cannot be done from within the database.
Commands for backups are outside of the database.
See the "2 Day DBA Guide" http://download.oracle.com/docs/cd/E11882_01/server.112/e10897/toc.htm
and the "Backup and Recovery Users's (actually Adminsitrator's) Guide : http://download.oracle.com/docs/cd/E11882_01/backup.112/e10642/toc.htm
Hemant K Chitale
Maybe you are looking for
-
UDT Lob buffer overflow in Initial Load
Hi All I'm doing an intial load for one table which is having ORDIMAGE column , Here is my prm details : ==================================================================== EXTRACT INIT_FFU -- ENVIRONMENT PROFILES setenv (ORACLE_SID = "trfdv") sete
-
My iPad2 went blank. Troubleshooter says driver software MTP USB problem, what do I need to do?
-
Running of VAT or GST report in Psoft
Hi, Is there anyone here who use Psoft VAT and Intrastat Module to generate VAT (value-added tax) or GST (good & service tax) report? Please advise. Cheers!
-
Standard extractors for pricing conditons in CRM
HI Guys, I would like to extract pricing conditions from CRM and wondering if there is a standard extractor for that. thanks
-
Do we need to close a URLConnection ?
For an established "URLConnection" (not a HTTP connection), do we need to disconnect it after use? If so, how can I do it? Thanks