`
骑猪逛街666
  • 浏览: 142034 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Oracle - ODPS数据类型转换

 
阅读更多

阅读原文请点击

摘要: oracle 数据类型 转到ODPS,映射关系

ODPS数据类型:

类型

描述

取值范围

Bigint

8字节有符号整型。请不要使用整型的最小值 (-9223372036854775808),这是系统保留值。

-9223372036854775807 ~ 9223372036854775807

String

字符串,支持UTF-8编码。其他编码的字符行为未定义。

单个String列最长允许8MB。

Boolean

布尔型。

True/False

Double

8字节双精度浮点数。

-1.0 10308 ~ 1.0 10308

Datetime

日期类型。使用东八区时间作为系统标准时间。

0001-01-01 00:00:00 ~ 9999-12-31 23:59:59

decimal

decimal类型支持null值,小数点前36位有效数字,小数点后18位有效数字。
正负无穷, 不支持,如果计算结果为正负无穷,或超出decimal的值域时抛异常,绝对值小于最小可表达范围时,置0。

 -999999999999999999999999999999999999.999999999999999999 ~ 999999999999999999999999999999999999.999999999999999999
select '1',cast("999999999999999999999999999999999999.999999999999999999" as decimal) from dual;

oracle与ODPS的数据类型映射表

Data Type

Description

ODPS

转换到ODPS Desc

VARCHAR2(size [BYTE | CHAR])

VARCHAR2(1-4000)

string

单个String列最长允许8MBOralce12c最长的varchar(30000)约为30Kb,可以存储。但是如果文本不是需要分析的列,最好还是放在OSS中。

NVARCHAR2(size)

NVARCHAR2(1-4000)

string

单个String列最长允许8MB

NUMBER [ (p [, s]) ]

无小数位
19位以下:NUMBER(19, 0)
36位以下:NUMBER(36, 0)
有小数位

p and s 小于等于17,例如NUMBER(17,2)
p-s
小于等于36,s小于等于18,例如NUMBER(38,2)
其他

无小数位

bigint
decimal
有小数位
double
decimal
string

考虑精度丢失情况,数值1.1在oracle存储和在ODPS存储必须完全相等。所以,这里的相等就是看到的数字全一致。无法对应的数据类型,只能存储为varchar。

FLOAT [(p)]

float(8)
其他

double
参考number

Float中的p指的是二进制的长度,最大可以到126。等同于NUMBER(38)。占22字节。所以,如果数据与NUMBER相同,请参考NUMBER对应关系。

LONG

最长可以到达2Gb长度的字符类型。

建议数据存储在OSS

DATE

日期

datetime

因为当前ADS日期类型函数支持不够丰富,统一转为unixtime格式,存储为bigint类型。如果同步到ADS也要存储为日期,转为datetime类型。(oracle 年的范围-4713  +9999)

BINARY_FLOAT

32-bit floating point number. This data type requires 4 bytes.

double

 等同于oracle的float(4),number(7)

BINARY_DOUBLE

64-bit floating point number. This data type requires 8 bytes.

double

 等同于oracle的float(8), number(17)

TIMESTAMP[(fractional_seconds_precision)]

时间戳

datetime

因为当前ADS日期类型函数支持不够丰富,统一转为unixtime格式,存储为bigint类型。如果同步到ADS也要存储为日期,转为datetime类型。

TIMESTAMP[(fractional_seconds_precision)] WITHTIME ZONE

时间戳,带时区

datetime

因为当前ADS日期类型函数支持不够丰富,统一转为unixtime格式,存储为bigint类型。TIME ZONE 特征丢失。

TIMESTAMP[(fractional_seconds_precision)] WITHLOCAL TIME ZONE

时间戳,带时区

datetime

因为当前ADS日期类型函数支持不够丰富,统一转为unixtime格式,存储为bigint类型。TIME ZONE 特征丢失。

INTERVAL YEAR [(year_precision)] TOMONTH

 

bigint

时间间隔无对应数据类型,建议转为秒

INTERVAL DAY [(day_precision)] TO SECOND[(fractional_seconds_precision)]

 

bigint

时间间隔无对应数据类型,建议转为秒

RAW(size)

RAW,类似于CHAR,声明方式RAW(L)L为长度,以字节为单位,作为数据库列最大2000,作为变量最大32767字节。

string

string
Oracle
中RAW和Varchar2常用的两个转换函数   
1. UTL_RAW.CAST_TO_RAW 
该函数按照缺省字符集,将VARCHAR2字符串转换为RAW。
insert into cmpp_submit (dest_terminal_id,msg_content) values('13001081371',UTL_RAW.CAST_TO_RAW('您好!'));
2. UTL_RAW.CAST_TO_VARCHAR2
该函数按照缺省字符集合,将RAW转换为VARCHAR2。
select UTL_RAW.CAST_TO_VARCHAR2(msg_content) from cmpp_deliver;

LONG RAW

LONG RAW,类似于LONG,作为数据库列最大存储2G字节的数据,作为变量最大32760字节

 

建议数据存储在OSS

ROWID

行唯一识别字符串

string

物理ROWID(Physical Rowid)可以让我们快速的访问某些特定的行。只要行存在,它的物理ROWID就不会改变。高效稳定的物理ROWID在查询行集合、操作整个集合和更新子集是很有用的。例如,我们可以在UPDATE或DELETE语句的WHERE子句中比较UROWID变量和ROWID伪列来找出最近一次从游标中取出的行数据。

UROWID [(size)]

行唯一识别字符串的base-64编码

string

扩展ROWID使用检索出来的每一行记录的物理地址的base-64编码。ROWIDTOCHAR(),ROWIDTOCHA

阅读原文请点击

分享到:
评论

相关推荐

    kettle_使用中的一些常见问题.docx

    根据错误信息, 可以看出字段 "field2" 的值为 "1,798", 而 Oracle 无法将含有逗号的字符串转换为 Number 类型。 **解决方法**: 1. 在 **Excel 输入步骤** 的 **字段** 标签下, 需要确保所有数值类型的字段都设置...

    Oracle内置SQL函数-分类整理大全

    字符函数在使用时有一些限制,例如VARCHAR2类型的值最大长度为2000个字符(在Oracle 8中为4000个字符),而CHAR类型的值最大长度为255个字符(在Oracle 8中为2000个字符)。 在过程性语句中使用字符函数时,可以将...

    JAVA实现数据库数据导入导出到Excel(POI)所需jar包

    从Cell中提取数据,根据数据类型转换为适合数据库存储的形式。最后,通过JDBC连接执行SQL插入语句,将数据写入数据库。 2. **所需Jar包:** - **Apache POI:** 包含处理Excel的核心库,如poi-ooxml-schemas、poi-...

    阿里云数据传输服务-产品简介-D.docx

    服务支持多种数据源类型,如Oracle、MySQL、SQL Server、PostgreSQL、MongoDB、ODPS、ADS等,覆盖了从传统关系型数据库到现代NoSQL数据库以及分析型数据库的需求。 数据迁移是数据传输服务的核心功能之一,它能帮助...

    1、datax3.0部署与验证

    1. **数据质量监控**:确保数据在传输过程中的完整性,支持所有强数据类型的转换,避免数据失真问题,并提供运行时监控,包括数据流量、速度和执行进度。 2. **实时监控**:在作业执行期间提供全面的状态信息,帮助...

    2013中国大数据技术大会PPT——阿里大数据应用平台

    在此基础上,他还强调了数据的“存通用”概念,即数据平台需要支持各种数据源和数据类型的存储和处理,让数据在关联和使用中产生更大的价值。 在技术方面,阿里大数据平台采用了统一数据交换协议和插件化开发模式,...

    DATAX说明书最新-20180825

    该工具支持的数据源包括但不限于MySQL、Oracle、SqlServer、PostgreSQL、HDFS、Hive、Amazon DynamoDB (ADS)、HBase、Table Store (OTS)、MaxCompute (ODPS) 和 DRDS。 #### 特点与优势 DataX的特点主要体现在其...

    datax的使用2021-03-17.pdf

    DataX采用了框架加插件的模式,以Framework和Plugin架构构建,能够实现包括MySQL、Oracle、HDFS、Hive、OceanBase、HBase、OTS、ODPS等不同数据源之间的高效数据同步。 DataX的核心概念包括Reader、Writer和...

    大数据ETL同步工具演示教程

    这里提到的不同数据源主要包括但不限于关系型数据库(如MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等。 **DataX**的设计初衷是为了满足日益增长的大数据处理需求,尤其是对于那些需要在不同系统之间进行数据...

    datax-es:从mysql导入es 重写代码

    DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步...

    DataX入门使用

    3. **Framework(框架)**:作为Reader和Writer之间的桥梁,处理数据传输过程中的核心问题,如缓冲管理、流量控制、并发处理以及数据类型转换等。 #### 三、DataX安装与使用 ##### 下载DataX DataX可以从官方...

    DataX数据同步手册.docx

    这些系统可能包括传统的关系型数据库如 MySQL、Oracle,以及大数据平台中的 HDFS、Hive、ODPS、HBase 和 FTP 等。通过DataX,可以将原本复杂的多对多的数据同步网络简化为以 DataX 为中心的星型结构,从而大大简化了...

    datax的使用.pdf

    DataX是一款由阿里巴巴开源的高效离线数据同步工具,支持多种异构数据源之间的数据同步,包括但不限于MySQL、Oracle、HDFS、Hive、OceanBase、HBase、OTS、ODPS等。DataX采取了框架加插件的模式,其本身是一个离线...

    DataX插件开发-读写插件

    DataX是阿里巴巴开源的一款强大的异构数据源离线同步工具,它的主要目标是实现各种不同类型的数据源之间的稳定高效数据同步,包括关系型数据库(如MySQL、Oracle)、HDFS、Hive、ODPS、HBase、FTP等。DataX的设计...

    hdfswriter.zip

    DataX是阿里巴巴集团开源的一款跨平台、高性能的数据同步工具,能够实现包括MySQL、Oracle、SQLServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS等数据源之间的数据迁移。...

Global site tag (gtag.js) - Google Analytics