Java:如何将CLOB插入到oracle数据库中
我需要将 XML 文件内容写入 Oracle 数据库,其中列的数据类型为 CLOB。 我该怎么做?
I need to write an XML file content into oracle database where the column is of CLOB datatype.
How will I do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
最简单的方法是简单地使用
方法(对于可以轻松保存在 Java 内存中的“小”字符串),或者
The easiest way is to simply use the
methods (for "small" strings which can be easily kept in Java memory), or
已过时 请参阅下面 Lukas Eder 的回答。
大约有 100 行代码;-) 这是一个示例< /a>.
要点:与其他 JDBC 驱动程序不同,Oracle 的驱动程序不支持使用
Reader
和InputStream
作为插入。相反,您必须
SELECT
CLOB
列FOR UPDATE
,然后写入ResultSet
我建议您将此代码移至辅助方法/类中。否则,它将污染代码的其余部分。
OUTDATED See Lukas Eder's answer below.
With about 100 lines of code ;-) Here is an example.
The main point: Unlike with other JDBC drivers, the one from Oracle doesn't support using
Reader
andInputStream
as parameters of anINSERT
. Instead, you mustSELECT
theCLOB
columnFOR UPDATE
and then write into theResultSet
I suggest that you move this code into a helper method/class. Otherwise, it will pollute the rest of your code.
这段代码对我有用。我使用ojdbc6-11.2.0.2.jar。
This code worked for me. I use ojdbc6-11.2.0.2.jar.
将 xml 内容作为字符串传递。
passing the xml content as string.
将 clob 转换为字符串:
Converting clob to string:
为此,您需要制作连接结果集
注意:在用于选择行的查询末尾添加短语 for update 很重要...
按照上面的代码插入 XML 文件
For this purpose you need to make the connection result set
Note: its important that you add the phrase for update at the end of the query that is written to select the row...
Follow the above code to insert the XML file
你可以用下面的代码很好地做到这一点,我只给你插入 xml 的代码,希望你已经完成了其余的事情..
我已经这样做了,并且工作正常。
You can very well do it with below code, i am giving you just the code to insert xml hope u are done with rest of other things..
I have done like this and it is working fine.
我有类似的问题。将我的表列之一从 varchar2 更改为 CLOB。
我不需要更改任何 java 代码。我仅将其保留为 setString(..),因此如果您至少使用以下版本的 Oracle 和 jdbc 驱动程序,则无需将 set 方法更改为 setClob() 蚀刻。
我在 Oracle 11g 和驱动程序 ojdbc6-11.2.0.4.jar 中尝试过
I had similar issue. Changed one of my table column from varchar2 to CLOB.
I didn't needed to change any java code. I kept it as setString(..) only so no need to change set method as setClob() etch if you are using following versions ATLEAST of Oracle and jdbc driver.
I tried in In Oracle 11g and driver ojdbc6-11.2.0.4.jar
试试这个,不需要设置它的 CLOB
Try this , there is no need to set its a CLOB
看一下 LobBasicSample 有关使用 CLOB、BLOB、NLOB 数据类型的示例。
Take a look at the LobBasicSample for an example to use CLOB, BLOB, NLOB datatypes.