Oracle存储过程迁移ODPS-00(专有云):Oracle - ODPS数据类型转换

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 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(),ROWIDTOCHAR()

CHAR [(size [BYTE | CHAR])]

定长字符串

string

string

NCHAR[(size)]

定长字符串

string

string

CLOB

字符型大字段数据类型

建议数据存储在OSS

NCLOB

字符型大字段数据类型

建议数据存储在OSS

BLOB

二进制型大字段数据类型

建议数据存储在OSS

BFILE

二进制文件,存储在数据库外的操作系统文件,只读的。把此文件当二进制处理。

建议数据存储在OSS

 

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
3月前
|
SQL 运维 分布式计算
DataWorks产品使用合集之迁移表结构该如何操作
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
24天前
|
算法 大数据 数据库
云计算与大数据平台的数据库迁移与同步
本文详细介绍了云计算与大数据平台的数据库迁移与同步的核心概念、算法原理、具体操作步骤、数学模型公式、代码实例及未来发展趋势与挑战。涵盖全量与增量迁移、一致性与异步复制等内容,旨在帮助读者全面了解并应对相关技术挑战。
33 3
|
15天前
|
存储 Oracle 关系型数据库
oracle服务器存储过程中调用http
通过配置权限、创建和调用存储过程,您可以在Oracle数据库中使用UTL_HTTP包发起HTTP请求。这使得Oracle存储过程可以与外部HTTP服务进行交互,从而实现更复杂的数据处理和集成。在实际应用中,根据具体需求调整请求类型和错误处理逻辑,以确保系统的稳定性和可靠性。
16 0
|
5月前
|
分布式计算 DataWorks MaxCompute
DataWorks产品使用合集之需要将mysql 表(有longtext类型字段) 迁移到odps,但odps好像没有对应的类型支持,该怎么办
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
数据采集 DataWorks 监控
DataWorks产品使用合集之迁移助手是否可以指定迁移节点
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
DataWorks产品使用合集之迁移助手是否可以指定迁移节点
|
3月前
|
安全 关系型数据库 MySQL
揭秘MySQL海量数据迁移终极秘籍:从逻辑备份到物理复制,解锁大数据迁移的高效与安全之道
【8月更文挑战第2天】MySQL数据量很大的数据库迁移最优方案
653 17
|
4月前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之如何进入迁移助手页面并使用迁移助手功能
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
DataWorks NoSQL fastjson
DataWorks操作报错合集之DataX进行MongoDB全量迁移的过程中,DataX的MongoDB Reader插件在初始化阶段找不到Fastjson 2.x版本的类库,该怎么办
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
4月前
|
数据采集 运维 DataWorks
DataWorks产品使用合集之跨项目克隆时,如何迁移表结构
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
存储 分布式计算 专有云
MaxCompute产品使用问题之阿里公有云的数据如何迁移到阿里专有云
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
62 10

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 推荐镜像

    更多