用oracle的java存储过程实现BLOB字段的字符串读取
原创于2009年07月24日,2009年10月22日迁移至此。
阅读了一个帖子“有没有可能写出比Oracle
函数更快的外部存储过程”(http://www.itpub.net/thread-1117461-1-1.html
)
突发灵感,加上原来有一个需求,需要从BLOB字段(本来就是字符型的内容)中直接读取成为字符串,需要java
开发人员的支持,想了想与其求人不如求己,
oracle.sql.BLOB的相关文档参看(http://www.princeton.edu/~storacle/jdbc8_doc/oracle.sql.BLOB.html
)
java能够调用Oracle的存储过程,反之oracle也能用java来开发外部存储过程,这样java和oracle的相互界限就已经不明确了。
当然关系型数据库
最好做自己应该做的事情而不是大包大揽做所有的非数据库应该做的事情。
--开发java类
create or replace and compile java source named BLOBObject as
package MyOracle.BLOB; --自己定义的package
import java.io.*; --外部引用到的java包
import oracle.sql.*;
public class BLOBObject
{
public static String ConvertBLOBtoString(oracle.sql.BLOB BlobContent)
{
byte[] msgContent= BlobContent.getBytes(); //BLOB转换为字节数组
byte[] bytes; //BLOB临时存储字节数组
String newStr = ""; //返回字符串
int i=1; //循环变量
long BlobLength; //BLOB字段长度
try
{
BlobLength=BlobContent.length(); //获取BLOB长度
if (msgContent == null || BlobLength==0) //如果为空,返回空值
{
return "";
}
else //处理BLOB为字符串
{
/*
&n
相关文档:
oracle表空间操作详解
1
2
3作者: 来源: 更新日期:2006-01-04
5
6
7建立表空间
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
Oracle系列:LOB大对象处理
主要是用来存储大量数据的数据库字段,最大可以存储4G字节的非结构化数据。
主要介绍字符类型和二进制文件类型LOB数据的存储,单独介绍二进制类型LOB数据的存储。
一,Oracle中的LOB数据类型分类
1,按存储数据的类型分:
①字符类型:
&nbs ......
Tablespace
ORACLE中,表空间是数据管理的基本方法,所有用户的对象要存放在表空间中,也就是用户有空间的使用权,才能创建用户对象.否则是不充许创建对象,因为就是想创建对象,如表,索引等,也没有地方存放,Oracle会提示:没有存储配额.
因此,在创建对象之前,首先要分配存储空间.
分配存 ......
Oracle Database 10g 提供了一个显著改进的工具:自动工作负载信息库 (AWR:Automatic Workload Repository)。Oracle 建议用户用这个取代 Statspack。AWR 实质上是一个 Oracle 的内置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。与 Statspack 不同,快照由一个称为 MMON 的新的后 ......
最近一段时间一直没写博客,不是懒,是学了太多东西。以后慢慢补上。 1. odbc中添加oracle数据源 odbc中添加oracle数据源首要条件:安装oracle client。安装完之后添加,但是还必须在安装目录下通常是C:\oracle\ora90\network\ADMIN\tnsnames.ora中添加一个连接,如下格式: DXS =
(DESCRIPTION =
......