一、Oracle中的varchar2类型

  1. 我们在Oracle数据库存储的字符数据一般是用VARCHAR2。VARCHAR2既分PL/SQL Data Types中的变量类型,也分Oracle Database中的字段类型,不同场景的最大长度不同。

  2. 在Oracle Database中,VARCHAR2 字段类型,最大值为4000;PL/SQL中 VARCHAR2 变量类型,最大字节长度为32767。

  3. 当 VARCHAR2 容纳不下我们需要存储的信息时,就出来的Oracle的大数据类型LOB( Large Object,大型对象)。


二、Oarcle中的LOB类型

  1. 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了。因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据量非常大的业务领域(如图象、档案等)。

  2. LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对象(Binary Large Object),适用于存贮非文本的字节流数据(如程序、图象、影音等)。

  3. 而CLOB,即字符型大型对象(Character Large Object),则与字符集相关,适于存贮文本型的数据(如历史档案、大部头著作等)。

三、DB中使用CLOB类型字段

(一)、创建表(使用sql或者直接在PL/SQL客户端创建),字段类型CLOB

-- Create table
create table TEST_CLOB
(
id number,
nmae varchar2(10),
msg clob
)

先看一下使用普通方式操作CLOB类型:

INSERT INTO TEST_CLOB (ID,
NMAE,
MSG) VALUES(1,'','我是大量信息描述')
select t.*from TEST_CLOB t

查询因为不是varchar2类型,所以普通查询看不到CLOB类型的字段内容,结果如下

而上面普通插入操作也会因为Oracle的隐式转换,默认把字符串转换成varchar2类型,一旦字符串内容超过varchar2的最大限度就会报会报ora-01704(字符串太长)错误。

正确操作:

--使用PL/SQL语法,采取绑定变量的方式解决,而不是直接拼接SQL

DECLARE
V_LANG CLOB := '待插入的海量字符串'; V_UPDATE CLOB := '更新的海量字符串';
BEGIN INSERT INTO TEST_CLOB t VALUES ('Grand.Jon', 22, V_LANG); --增加 UPDATE TEST_CLOBt SET t.temp_clob = V_UPDATE WHERE rownum = 1; --修改 SELECT t.NAME, dbms_lob.substr(t.MSG) FROM TEST_CLOB t; --查询  将CLOB转成字符类型 DELETE TEST_CLOB t WHERE rownum = 1; --按列删除   COMMIT; END;
/

对CLOB的操作我们在存储过程中基本上使用 dbms_lob 中 substr , append , write 等方法。

dbms_lob 方法总结

1 dbms_lob.createtemporary(V_SQL,true);     --创建一个临时clob,用来存储拼接的sql
2 dbms_lob.write(v_SQL,'写入信息'); --写入操作
3 dbms_lob.append(v_SQL,','); --拼接clob
4 dbms_lob.substr(v_SQL); --截取clob,不传参数就是全部读取
5 dbms_lob.freetemporary(v_SQL); --释放clob

关于CLOB类型更多详细使用讲解参考:https://www.cnblogs.com/Grand-Jon/p/7389427.html

Orcal数据类型总结的更多相关文章

  1. JavaScript 中的数据类型

    Javascript中的数据类型有以下几种情况: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Date,Ar ...

  2. JS 判断数据类型的三种方法

    说到数据类型,我们先理一下JavaScript中常见的几种数据类型: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Functi ...

  3. Python高手之路【二】python基本数据类型

    一:数字 int int(整型): 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值 ...

  4. UniqueIdentifier 数据类型 和 GUID 生成函数

    UniqueIdentifier 数据类型用于存储GUID的值,占用16Byte. SQL Server将UniqueIdentifier存储为16字节的二进制数值,Binary(16),按照特定的格 ...

  5. SQL Server常见数据类型介绍

    数据表是由多个列组成,创建表时必须明确每个列的数据类型,以下列举SQL Server常见数据类型的使用规则,方便查阅. 1.整数类型 int 存储范围是-2,147,483,648到2,147,483 ...

  6. 由js apply与call方法想到的js数据类型(原始类型和引用类型)

    原文地址:由js apply与call方法想到的js数据类型(原始类型和引用类型) js的call方法与apply方法的区别在于第二个参数的不同,他们都有2个参数,第一个为对象(即需要用对象a继承b, ...

  7. python 数据类型 ----字典

    字典由一对key:value 组成的 python中常用且重量级的数据类型 1. key , keys, values 字典由一对key:value 组成的 python中常用且重量级的数据类型 1. ...

  8. SQL数据类型

    1.Character 字符串: 数据类型 描述 存储 char(n) 固定长度的字符串.最多8,000个字符. n varchar(n) 可变长度的字符串.最多8,000个字符.   varchar ...

  9. 跟着老男孩教育学Python开发【第二篇】:Python基本数据类型

    运算符 设定:a=10,b=20 . 算数运算 2.比较运算 3.赋值运算 4.逻辑运算 5.成员运算 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**3 ...

随机推荐

  1. kbmMWClientQuery判断一个字段是否修改?

    function TForm5.IsFieldChanged(aDataSet: TkbmMWCustomClientQuery; aFieldName: string): Boolean; var ...

  2. CPU排行

    早期的时候,在某个网站上面收录下来的关于CPU排行的信息,发出来让更多的人看到,希望能够帮助到一些人!

  3. PTA ”写出这个数“

      读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 10的100次方. 输出格式: 在 ...

  4. 正则表达式 Regular expression为学习助跑

    这是一个Regular expression的铁路图(至少我现在是这么称呼的)的图形化界面帮助检验和理解我们所写的Regular expression是否正确. 1.官网 :https://regex ...

  5. Ubuntu 18.04 启动太慢不能忍

    检查谁在搞鬼 $ systemd-analyze blame 结果 39.828s plymouth-quit-wait.service 39.311s apt-daily.service 30.93 ...

  6. 使用HTML5 -Canvas追踪用户,Chrome隐身模式阵亡

    中国的一些精准营销公司又要偷着乐了= =从之前追踪Cookie到后面追踪FlashCookie,某些商家总在永无止境的追踪用户行为甚至是隐私,将其转化为所谓的“商业价值”.我们被迫面临“世风日下.道德 ...

  7. Acwing-166-数独(搜索)

    链接: https://www.acwing.com/problem/content/168/ 题意: 数独是一种传统益智游戏,你需要把一个9 × 9的数独补充完整,使得图中每行.每列.每个3 × 3 ...

  8. jvm——Java main方法的执行

    这是什么神仙博客! https://www.cnblogs.com/kaleidoscope/p/9629156.html

  9. pyspark中的dataframe的观察操作

    来自于:http://www.bubuko.com/infodetail-2802814.html 1.读取: sparkDF = spark.read.csv(path) sparkDF = spa ...

  10. Remote API(RAPI)之 文件管理

    RAPI库由一组函数组成,这些函数可用于通过桌面应用程序管理设备,包括设备的目录文件.设备的注册表和系统信息. RAPI提供了一组文件管理方法 CeCopyFile:复制文件 CeCreateDire ...