Oracle sql developer save hebrew data - converted to gibberish - java

I'm trying to insert hebrew content to table, using oracle sql developer db.
this is my code using myBatis:
<insert id="insertTaskTempImage" parameterType="com.ladpc.mobile.entities.TaskTempImage" useGeneratedKeys="false">
INSERT INTO TASKS_TEMP_IMAGES (
TASK_ID,
RASHUT_ID,
COMMENTS,
CREATION_DATE,
IMAGE,
FILE_NAME
)
VALUES (
#{taskId,jdbcType=NUMERIC},
#{rashutId,jdbcType=NUMERIC},
#{comments, jdbcType=VARCHAR},
#{creationDate, jdbcType=TIMESTAMP},
#{image,jdbcType=BLOB},
#{fileName,jdbcType=VARCHAR}
)
</insert>
After I insert the fileName to the table- with hebrew chars, I get gibberish content in the table:
and when I load this content and show it in UI its writen in gibberish.
What need I do to resolve this issue?
edit:
My nls is on hebrew but its still not working...
Thank you!

ALTER SESSION SET NLS_LANGUAGE . And you will have to find the right value for the language you want.

Tools > Preferences > Code Editor > Fonts.
Set it to something friendly like Tahoma.
Query your data, save it.
And then open said file.
Oracle SQL Developer is a java app - it's got full unicode supports out-of-the-box. Nine times out of 10, display issues are due to an incompatible font.
I don't read Hebrew, I used an ipsum generator for this text, so if it's offensive, my apologies.

Sorry, I finded out the sulotion...
My client need to send this data in utf-8 encoding.
The problem wasn't on server inserts, the server get this string on gibbresh...
Tanks for all answers!

Related

Fusion Charts FusionTime making a time-series chart from mySQL

I am a beginner at all things coding but need some help with Fusion Charts if anyone can help.
I have followed along with tutorials already for Fusion Charts linking it to MySQL database and displaying a chart with no issues.
However, I would like to display a time-series chart, which uses FusionTime. This requires the data to be in a Datatable. " FusionTime accepts data in rows and columns as a Datatable".
I cannot find any examples online for taking SQL data and converting into a datatable with data and schema which it seems to require. This is different from the way fusioncharts works.
https://www.fusioncharts.com/dev/fusiontime/getting-started/create-your-first-chart-in-fusiontime
My SQL database contains many tables and many columns within it, so will need to select the appropriate column to display.
I would appreciate any advice anyone can provide. The main problem is I don't know how to get the SQL database into a data and schema file to display with fusiontime. This is to display on a webpage hosted locally.
Many thanks for any time you can provide to help with this
ft needs a json, you must write a file from php type json
like this
.....
$result = json_encode($dataIngGast, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE |JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT);
//echo $result;
$arquivo = "column-line-combination-data-gasto-ingreso-finanzas.json";
$fp = fopen($arquivo, "a+");
fwrite($fp, $result);
fclose($fp);

Arabic data is converting into ???? when java program queries xml payload from Oracle Table using Select statement

Arabic data is converting into ???? when java program queries xml payload from Oracle Table using Select statement
I have written a JDBC program to query xml type payload from Oracle table using Select statement. Few XML elements in the payload contains like FirstName, LastName etc. contains Arabic Characters. When i run my program, Select query returning the xml payload but the elements which having arabic characters are converting into ????.
I am not sure why it is happening like this.
is any one have solution for this problem?
Thanks in Advance.
I experienced this problem with java and mysql on eclipse the solution was
From eclipse click right on your project and choose properties and choose utf-8 like this photo
Then from the database chose base encoding and utf-8 tables.
Finally, all database queries must be utf-8 encoded
like this
String url = "jdbc:mysql://host/database?useUnicode=true&characterEncoding=utf8";

Error: Special characters are not uploaded from csv to database in Liferay 6.1

I am inserting records from csv file to mysql database in Liferay 6.1. I have already set porta-ext.properties file with
jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.url=jdbc:mysql://localhost:3306/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
jdbc.default.username=root jdbc.default.password=root
when I am trying to upload records ,it throws error for special characters like á
Error details:
13:38:21,001 ERROR [JDBCExceptionReporter:75] Data truncation: Data too long for column 'providerName' at row 1
When I removed those characters it persists records without error.
Can anyone suggest me how to resolve this problem.
Thank you
If your database is in UTF-8 and you have "special" characters in it than most probably you are missing "file.encoding=UTF-8" vm argument (-Dfile.encoding=UTF-8), or at least you should specify encoding when opening file/stream.

Oracle RDF table throws ORA-22835 error when saving triple

We're running a Java application that saves data to the Oracle RDF triplestore using the Jena adapter. Our version of Oracle is 11gR2.
Recently, we've been getting this error popping up during the save of a large triple.
ERROR http-bio-8080-exec-4 oracle.spatial.rdf.client.jena.GraphOracleSem:
Could not add triple java.sql.SQLException:
ORA-22835: Buffer too small for CLOB to CHAR or BLOB to RAW conversion (actual: 5223, maximum: 4000)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:205)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1008)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1307)
at oracle.jdbc.driver.OraclePreparedStatement.sendBatch(OraclePreparedStatement.java:3753)
at oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:2112)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3444)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3530)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1350)
at oracle.spatial.rdf.client.jena.GraphOracleSem.performAdd(GraphOracleSem.java:3509)
at oracle.spatial.rdf.client.jena.OracleBulkUpdateHandler.add(OracleBulkUpdateHandler.java:1226)
at oracle.spatial.rdf.client.jena.OracleBulkUpdateHandler.addIterator(OracleBulkUpdateHandler.java:1257)
at oracle.spatial.rdf.client.jena.OracleBulkUpdateHandler.add(OracleBulkUpdateHandler.java:1278)
at oracle.spatial.rdf.client.jena.OracleBulkUpdateHandler.add(OracleBulkUpdateHandler.java:1268)
at com.hp.hpl.jena.sparql.modify.UpdateProcessorVisitor$1.exec(UpdateProcessorVisitor.java:51)
at com.hp.hpl.jena.sparql.modify.GraphStoreUtils.action(GraphStoreUtils.java:60)
at com.hp.hpl.jena.sparql.modify.UpdateProcessorVisitor.visit(UpdateProcessorVisitor.java:48)
at com.hp.hpl.jena.sparql.modify.op.UpdateInsertData.visit(UpdateInsertData.java:16)
at com.hp.hpl.jena.sparql.modify.UpdateProcessorMain.execute(UpdateProcessorMain.java:34)
at com.hp.hpl.jena.update.UpdateAction.execute(UpdateAction.java:253)
at com.hp.hpl.jena.update.UpdateAction.parseExecute(UpdateAction.java:176)
at com.hp.hpl.jena.update.UpdateAction.parseExecute(UpdateAction.java:143)
at com.hp.hpl.jena.update.UpdateAction.parseExecute(UpdateAction.java:105)
As the error states, it occurs when the data string is greater than 4000 characters. Though it doesn't specify table/column in the error, the Oracle documentation suggests that it's supposed to automatically handle this internally:
RDF_VALUE$ Table:
LONG_VALUE: CLOB - The character string if the length of the lexical value is greater than 4000 bytes. Otherwise, this column has a null value.
VALUE_NAME: VARCHAR2(4000) - This is a computed column. If length of the lexical value is 4000 bytes or less, the value of this column is the concatenation of the values of VNAME_PREFIX column and the VNAME_SUFFIX column.
Some users are not seeing this error, though it may be that they just haven't tried to save something big enough. We've tried clearing out the triplestore model of the user, which seemed to work for a couple days but then came back.
Does anybody have any hints about where to start debugging this? Thank you.
I had the same problem a couple of years ago. Which version of the jena-adapter are you using? I got a patch that solved the problem, maybe you can try and see if it is still availiable on oracle support. This is the instruction I received:
login to support.oracle.com,
then click on Patches & Updates tab
in Patch Search panel, click Search tab, type 10186312 in the text box after Patch Name or Number button.
Click Search button. It should return one match.
Click on the Patch Name 10186312, then Click on Download.

Spring 3 MVC + MySQL: cannot store € character

I have Spring 3 MVC set up with Hibernate and MySQL 5. In a web form, I enter a single character into a field, € (i.e. just the one character). When I then attempt to save the data, I get the following exception:
java.sql.BatchUpdateException: Data truncation: Data truncated for column 'name' at row 1
'name' is a String on my model object. The 'name' column is of datatype VARCHAR(80) in MySQL. I have also tried entering a € into a TEXT column, with the same result.
I have configured a CharacterEncodingFilter for my webapp and my DB connection string looks like this:
jdbc:mysql://localhost/baseApp?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8
Any ideas what the problem might be?
Update:
I don't think MySQL has anything to do with this issue. I have intercepted the HTTP POST before the properties of my model object are set and the € is properly encoded as %80. When I interrogate the properties of my model object, however, €'s are simply ?'s.
Any thoughts?
Are you sure the MySQL database suports UTF-8? I think the default install settings uses latin1. You also need to make sure that the 'default-character-set' for [mysql] and [mysqld] in the my.ini configuration file is set to 'utf8'. Furthermore make sure the table was built with UTF-8 settings.

Categories

Resources