NVARCHAR2在计算长度时和字符集相关的:比如数据库是中文字符集时以长度10为例,1、NVARCHAR2(10)是能够存进去10个汉字的。假设用来存英文也仅仅能存10个字符。2、而VARCHAR2(10)的话,则仅仅能存进5个汉字,英文则能够存10个。注:二者字节上线都是4000。注意大小设置不要溢出。原文:http://www.cnblogs.com/lcchuguo/p/5195004.html
oracle数据库相信大家都比较熟悉,数据库中有一种非常常用的数据类型:字符串型。 对应该类型,在oracle中有三种比较常用的类型:varchar2(byte)、varchar2(char)、nvarchar2()。 那么这三种类型到底有什么区别呢? 首先,我们要时刻记清:无论是varchar2还是nvarchar2,最大字节数都是4000。 varchar2(byte):就是默认的表示方式,比如我们写成:varchar2(100),就相当于varchar2(100 byte),表示...
Oracle定义字符串类型VARCHAR2和CHAR指定长度的用法如下:varchar2(<SIZE> <BYTE|CHAR>) <SIZE>是介于1~4000之间的一个数,表示最多占用4000字节的存储空间。char(<SIZE> <BYTE|CHAR>) <SIZE>是介于1~2000之间的一个数,表示最多占用2000字节的存储空间。那其中的BYTE和CHAR有什么区别呢BYTE,用字节指定:VARCHAR2(10 BYTE)。这能支持最多10字节的数据,在一个多字节字符集中,这可能只是两个字符。采用多字节字符集时,字节与字符...
因为varchar2最大长度为4000,所以不能直接将blob转为varchar2,这里通过函数将blob返回为table格式来实现:1、创建两个新的type,用于函数返回create or replace type obj_table as object
(name varchar2(2000)
);create or replace type t_table is table of obj_table
2、创建blob转varchar2的函数CREATE OR REPLACE
Function Blob_To_Varchar (id In VARCHAR2) Return t_table
asrs t_table:= t_table();-- 定义上面创建的类型...
使用过一个关联查询,两个表的字段定义了不同的类型。一个字段是varchar2类型,另一个字段是number类型,内容如下:‘00187‘和187。在使用中发现会自动将varchar2类型转换为number,即187和187。效果与to_number()一样。专门写了两个sql测试了下,如下:select
case when ‘0110‘ = 110 then‘true‘
else‘false‘endfrom dual;
select
case when to_number(‘0110‘) = to_number(110) then‘true‘
else‘false‘endfrom du...
--建立表test1
create table TEST1
(
ID VARCHAR2(40) default sys_guid(),
TDATE VARCHAR2(200)
)
tablespace APP_TX_DATA
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
--插入date时间格式数据
insert into test1 values(sys_guid(),sysdate+10);、
--查询数据
select * from test1 -- tdate值为 01-7月 -15
--Q:如何将现有数...
联系:
1.varchar/varchar2用于存储可变长度的字符串
比如varchar(20),存入字符串‘abc‘,则数据库中该字段只占3个字节,而不是20个字节
2.size 的最大值是 4000,而最小值是 1,其值表示字节数,比如
varchar(20)表示最大可以存放20个字节的内容
区别:
1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;
2.VARCHAR2把空串等同于null处理,而varchar仍...
1.char
char的长度是固定的,比如说,你定义了char(20),即使你你插入abc,不足二十个字节,数据库也会在abc后面自动加上17个空格,以补足二十个字节;
char是区分中英文的,中文在char中占两个字节,而英文占一个,所以char(20)你只能存20个字母或10个汉字。
char适用于长度比较固定的,一般不含中文的情况
2.varchar/varchar2
varchar是长度不固定的,比如说,你定义了varchar(20),当你插入abc,则在数据库中只占3个字节。 var...
------------------------------------ ----------- ------------------------------
max_string_size string STANDARD
SQL>
开启"扩展数据类型"功能:SQL> alter system set max_string_size=extended scope=both;
alter system set max_string_size=extended scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-14694: database must i...
一. varchar2(10)和number应该转换为什么类型?
oracle转成mysql时:varchar2(10)可以转成varchar(10)number则要看oracle中存储的具体是什么类型的数据:1、如果是整型,那么mysql中,用int即可;2、如果是带小数位的,那么mysql中可用numeric类型。
注:mysql中没有varchar2(10)和number这两个数据类型
二. Mysql varchar VS Oracle varchar2
mysql和oracle做数据同步。其中表的一个字段在mysql中设置为varchar(6),Oracle中为va...
如果执行oerr ora 06502命令,没有提及详细原因(Cause)以及解决方法(Action)。这个估计是出现这类错误的场景太多了的缘故。
$ oerr ora 06502
06502, 00000, "PL/SQL: numeric or value error%s"
// *Cause:
// *Action:
在官方文档http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/datatypes.htm,我看到了关于ORA-06502的错误的一些出现场景。非常有意思。有兴趣的最好直接阅读源文档。
1: 赋值或插入超过长度的值。
...
在做交叉报表列头的排序时,遇到这三个问题,下面具体来说一下。
设计的数据库的表结构如图1所示:图1
要处出来student_name_,s.grade_,s.subject_name_,这三个属性,当时我是这样写的sql语句:
select s.student_name_, s.grade_, s.subject_name_,
case s.subject_name_
when ‘语文‘ then ‘A语文‘
when ‘数学‘ then ‘B数学‘
when ‘英语‘ then ‘C英语‘
else s.subject_name_
end
from student s
执行之后...
如果oracle的字符编码采用GBK,那么一个汉字占两个字节,可如果使用的是UTF-8那么一个汉字占三个字节。大部分情况下使用varchar2类型,可以保证更好的兼容性。
GBK字符集下:varchar2(10)可以存5个中文,可以存10个英文。但是使用length函数获取长度实际上获取的是字符的个数,即:存5个中文的长度为5 , 10个英文的长度为10 。
nvarchar2(10)最多可一存10个中文,最多也只能存10个英文,字符长度也是字符个数,即无论是中文还...
原来表中的列定义成VARCHAR2类型,众所周知,VARCHAR2类型最大支持长度为4000。假设因为业务须要。想把此列转换为CLOB类型,在Oracle中直接通过ALTER语句转换是行不通的。以下依据详细事例解说在Oracle数据库中怎样把表列由VARCHAR2类型转换为CLOB类型。演示样例准备
1. 新建两张张表TB_WITHOUT_DATA(此VARCHAR2列不包括数据)和TB_WITH_DATA(此Varchar2列包括数据)create table TB_WITHOUT_DATA
(id NUMBER,name VARCHAR2(100),...
Oracle定义字符串类型VARCHAR2和CHAR指定长度的用法如下:
varchar2(<SIZE> <BYTE|CHAR>) <SIZE>是介于1~4000之间的一个数,表示最多占用4000字节的存储空间。char(<SIZE> <BYTE|CHAR>) <SIZE>是介于1~2000之间的一个数,表示最多占用2000字节的存储空间。那其中的BYTE和CHAR有什么区别呢BYTE,用字节指定:VARCHAR2(10 BYTE)。这能支持最多10字节的数据,在一个多字节字符集中,这可能只是两个字符。采用多字节字符集时,字节与字符...