Oracle的数据类型
Oracle与c# 数据类型对应


Oracle与JAVA 数据类型对应

常用类型
https://www.jb51.net/article/47130.htm 
字符类型

注意点:
定长和可变长度
char(n)固定长度字符串,假如长度不足n,右边空格补齐;varchar(n)可变长度字符串,假如长度不足n,右边不会补齐;varchar2(n)可变长度字符串,Oracle官方推荐使用,向后兼容性好;varchar2类型最多可容纳4000个英数字,合2000个汉字。char(n) VS varchar2(n) char(n)查询效率相对较高,varchar2(n)存储空间相对较小;
NVARCHAR2和VARCHAR2
具体到NVARCHAR2和VARCHAR2的区别,从使用角度来看区别在于:NVARCHAR2在计算长度时和字符集相关的,例如数据库是中文字符集时以长度10为例,则1、NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。2、而VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个。CHAR类型类似 varchar一般适用于英文和数字,Nvarchar适用中文和其他字符,其中N表示Unicode常量,可以解决多语言字符集之间的转换问题nvarchar2类型字段能容纳字符个数为2000个,对中英文都一样。
字符串比较
如果两个值都是CHAR,则PL / SQL在将它们比较之前,将较短的值填充为较长值的长度。
如果任一值为VARCHAR2,PL / SQL在比较它们之前不调整它们的长度。
last_name1 VARCHAR2(10) := 'HTML'; last_name2 VARCHAR2(10) := 'HTML5';
--值不相等last_name2>last_name1
last_name1 CHAR(5) := 'HELLO'; -- no trailing blanks
last_name2 CHAR(10) := 'HELLO '; -- trailing blanks
--last_name1 = last_name2
last_name1 VARCHAR2(10) := 'HELLO'; -- no trailing blanks
last_name2 VARCHAR2(10) := 'HELLO '; -- trailing blanks
--值不相等last_name2>last_name1
last_name1 VARCHAR2(10) := 'HELLO';
last_name2 CHAR(10) := 'HELLO'; -- PL/SQL blank-pads value
--last_name1 < last_name2
数字类型
https://blog.csdn.net/qq_33573235/article/details/78154928
举例: 12345.678 p是8 s是3;oracle中表示int:INTEGER,number(38,0),相当于9999999999(38个9)
日期类型
date不带毫秒数,不能像mssql插入日期字符串,需要转换格式才能插入
--插入date
insert into tabname(datecol) value(sysdate) ;
insert into tabname(datecol) value(sysdate+1) ;
insert into tabname(datecol) value(to_date('2014-02-14','yyyy-mm-dd')) ;
insert into tabname(datecol) value(to_date('2014-02-14 20:47:00','yyyy-mm-dd hh24:mi:ss'));
insert into tabname(datecol) value(to_date('20140214','yyyymmdd')) ;
insert into tabname(datecol) value(to_date('20140214204700','yyyymmddhh24miss')) ;
--插入timestamp
to_timestamp('2021-07-19 17:35:22.123456','YYYY-MM-DD HH24:MI:SS.FF6')
--查询返回 HH24是24小时格式。FF6毫秒6位,省略6则补0
to_char(brith,'YYYY-MM-DD HH24:MI:SS')
to_char(ttimestamp,'YYYY-MM-DD HH24:MI:SS.FF6')
其他类型


浙公网安备 33010602011771号