首先先在数据库中创建一张表
create table TB_TEST
(
ID NUMBER,
BLB BLOB
)
其次向表中插入一条空数据
insert into tb_test (id,blb) values (1,empty_blob())
最后更改BLOB字段的值
declare
directions BLOB;
amount BINARY_INTEGER;
offset INTEGER;
first_direction VARCHAR2(100);
more_directions VARCHAR2(500);
begin
update set blb = empty_blob() where id = 1; --更新和新增一样要将BLOB字段设置为EMPTY_BLOB()
select blb into directions from tb_test where id = 1 for update; --一定要用for update锁住记录,否则
--DBMS_LOB.OPEN会出错
DBMS_LOB.OPEN(directions, DBMS_LOB.LOB_READWRITE);
first_direction := '这是我的第一个插入blob的数据,测试一下看一下效果如何,是否能够用pl/sql直接插到插入的数据值!';
amount := LENGTHB(first_direction); --number of characters to write
--有中文必须用LENGTHB
offset := 1; --begin writing to the first character of the CLOB
DBMS_LOB.WRITE(directions,
amount,
offset,
UTL_RAW.cast_to_raw(first_direction));
--UTL_RAW.cast_to_raw函数将字符串转换成二进制数
DBMS_LOB.CLOSE(directions);
commit;
end;
把插入的BLOB数据转换成字符串显示的方式是
select id,UTL_RAW.cast_to_varchar2(blb) blb from tb_test t;
这种方式在显示纯文本字符串时显示的是正常的,可当我插入的数据例如是<form id="form1" name="form1"><input type="data" value="hello"></form>这种时在查询显示时就会显示为空,兄弟姐妹们谁有更好的显示方式,看到的话分享一下,谢谢了!!
分享到:
相关推荐
可以从数据库中读取blob字段并插入到另一个表中,已经测试通过
- `TRANSLATE`函数用于替换字符串中的字符。在这里,它被用来移除CLOB字段`PW.SPYJ`中的换行符(`CHR(13)`代表回车,`CHR(10)`代表换行)。 - `FROM DUAL;`表明这是一个简单的测试查询,通常用于演示目的。 #### 四...
本篇文章将详细探讨如何将ORACLE数据库中的BLOB(Binary Large Object)字段导入到SQL SERVER中的IMAGE字段,这通常涉及到数据转换、数据迁移以及可能的数据类型兼容性问题。 首先,让我们了解BLOB和IMAGE字段的...
在Java应用程序中读取Oracle数据库中的BLOB字段通常涉及到几个步骤:建立数据库连接、执行查询语句、获取结果集并从中提取BLOB数据,最后将这些数据写入到文件中。 ##### 3.1 加载Oracle驱动 在Java程序中使用...
- **分块读取**:由于`VARCHAR2`类型的限制,需要分块读取Blob数据,并将其拼接成完整的字符串。 - **性能考虑**:当处理大量或非常大的字符串时,需注意对性能的影响。在实际应用中,可以考虑优化读取逻辑,比如...
本示例主要涉及的是如何将图片通过BASE64编码加密后存入数据库的Blob类型字段,并能从数据库中取出这些数据再还原成原始图片。以下是相关知识点的详细说明: 1. **BASE64编码**:BASE64是一种用于将二进制数据转换...
1. **提取高度**:从字符串中提取前两个字符'01B9',并将其转换为十进制表示图片的高度。这里的'01B9'等于十进制中的441。 2. **提取宽度**:接着提取接下来的两个字符'0166',并将其转换为十进制表示图片的宽度。...
`UTL_RAW.CAST_TO_VARCHAR2`是Oracle提供的一个包中的函数,用于将RAW或BLOB类型的二进制数据转换为VARCHAR2字符串类型。这一步骤对于将BLOB转换为CLOB至关重要,因为CLOB本质上是一种字符数据类型,而不能直接与二...
- **插入数据**:通过SQL插入语句,将转换后的图片数据插入到相应的字段中。 - **保存图片**:提交事务,确保数据保存到数据库中。 4. **从Oracle中读取图片**: - **查询数据**:使用SQL查询语句获取`CLOB`或`...
在C#中,Oracle提供了Oracle.DataAccess.Client库来操作Oracle数据库,包括LongRaw和Blob字段的转换。以下是一个简单的步骤概述: 1. **连接数据库**:使用OracleConnection类建立到Oracle数据库的连接。需要提供...
我们使用了 Java 语言和 JDBC 驱动程序来实现数据的导出,并将 Image 类型数据写到文件中,然后将文件中的数据读取出来,并将其设置到 Oracle 的 CLOB 字段中。这种方法可以帮助我们实现不同数据库管理系统之间的...
当你尝试向CLOB字段插入数据时,如果遇到“字符串过长”的错误,通常是因为你的插入操作试图将超过Oracle允许的最大限制的数据放入CLOB字段。 Oracle CLOB字段可以存储最多4GB的数据,但在某些情况下,如使用SQL...
- LONG和LONG RAW:用于存储可变长的字符串数据和二进制数据,但有长度限制,每个表中只能有一个LONG字段,并且最长为2GB。 - CLOB(字符大对象):用于存储大型文本数据,与字符集相关联,支持文本型数据,如历史...
Oracle中的Blob字段类型是用于存储大量二进制数据的数据类型,比如图像、音频或大型文档。Blob代表Binary Large Object,其最大容量可达4GB。在Oracle数据库中,Blob与Clob(Character Large Object)、Bfile和Nclob...
1. VARCHAR2(20):这是Oracle中的可变长度字符串类型,用于存储最多20个字符的文本数据。在INSERT语句中,你可以直接将字符串值传递给对应的参数,例如`Ocom.Parameters["emp_no"].Value = tbempno.Text;` 2. LONG...
本文将详细讲解如何操作Oracle数据库中的Blob字段,以实现图片的存储和读取。Blob(Binary Large Object)字段类型用于存储大量的二进制数据,如图片、文档等。 首先,确保已安装了Oracle的客户端库,如ODP.NET ...
在描述中提到的“Oracle导出Clob,Blob等大字段工具”就是为了解决这个问题而设计的,它是一个自编写的实用程序,方便用户导出和管理Oracle数据库中的大对象数据。 Oracle数据库中的Clob类型用于存储大量的文本数据...
1. VARCHAR2:这是Oracle数据库中最常见的字符串类型,用于存储可变长度的字符数据。例如,`VARCHAR2(20)`表示可以存储最多20个字符的数据。在INSERT语句中,可以使用如下方式设置VARCHAR2类型的值: ```sql INSERT...
7. 创建窗口w_dbblob:创建一个名为w_dbblob的窗口,并在该窗口中添加一个数据窗口dw_1,该数据窗口用于显示Blob类型数据,并且在rowfocuschanged事件中使用SQL语句将Blob类型数据存取到数据库中。 8. 创建窗口w_...
插入数据到BLOB字段时,通常需要先将图像文件保存到服务器,然后读取文件内容并将其插入数据库。例如: ```csharp private void BtInsert_Click(object sender, System.EventArgs e) { // 获取图片文件内容并保存...