统一SQL 支持Oracle cast函数转换

这篇具有很好参考价值的文章主要介绍了统一SQL 支持Oracle cast函数转换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

统一SQL介绍

https://www.light-pg.com/docs/LTSQL/current/index.html文章来源地址https://www.toymoban.com/news/detail-855995.html

源和目标

源数据库:Oracle

目标数据库:Postgresql,TDSQL-MySQL,达梦8,LightDB-Oracle

操作目标


在Oracle中,cast函数允许将一种内建数据类型转换成另一种内建类型。当前统一SQL支持红框语法分支到目标数据库的转换。

统一SQL 支持Oracle cast函数转换,统一SQL,sql,数据库

在Oracle中,cast内建类型转换列表,本文针对cast(expr as number)说明经过统一SQL转换到目标库中与之适配的数据类型。

统一SQL 支持Oracle cast函数转换,统一SQL,sql,数据库

统一SQL转换

通过统一SQL到目标库Postgresql,TDSQL-MySQL,达梦8,LightDB-Oracle转换结果如下:

(关于数据类型number/decimal/dec/numeric还可参考文章:https://blog.csdn.net/Richar1/article/details/137876283 )

cast(x as target_type) 测试Oracle-SQL 2pg-expect 2tdmysql-expect 2dm-expect 2ltora-expect
number select CAST(col_float_binary AS NUMBER) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal decimal number number
number(*) select CAST(col_float_binary AS NUMBER(*)) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal decimal number number
number(*,0) select CAST(col_float_binary AS NUMBER(*,0)) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal(38,0) decimal(38,0) number(38,0) number(38,0)
number(*,s) select CAST(col_float_binary AS NUMBER(*,2)) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal(38,2) decimal(38,2) number(38,2) number(38,2)
number(4)/number(4,0) select CAST(col_float_binary AS NUMBER(4)) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal(4) decimal(4) number(4) number(4)
number(9)/number(9,0) select CAST(col_float_binary AS NUMBER(9)) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal(9) decimal(9) number(9) number(9)
number(18)/number(18,0) select CAST(col_float_binary AS NUMBER(18)) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal(18) decimal(18) number(18) number(18)
number(38)/number(38,0) select CAST(col_float_binary AS NUMBER(38)) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal(38) decimal(38) number(38) number(38)
number(p,s) select CAST(col_float_binary AS NUMBER(10,2)) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal(10,2) decimal(10,2) number(10,2) number(10,2)
decimal select CAST(col_float_binary AS decimal) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal(38,0) decimal(38,0) decimal(38,0) decimal(38,0)
decimal(*) select CAST(col_float_binary AS decimal(*)) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal(38,0) decimal(38,0) decimal(38,0) decimal(38,0)
decimal(*,0) select CAST(col_float_binary AS decimal(*,0)) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal(38,0) decimal(38,0) decimal(38,0) decimal(38,0)
decimal(*,s) select CAST(col_float_binary AS decimal(*,2)) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal(38,2) decimal(38,2) decimal(38,2) decimal(38,2)
decimal(4)/decimal(4,0) select CAST(col_float_binary AS decimal(4)) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal(4) decimal(4) decimal(4) decimal(4)
decimal(9)/decimal(9,0) select CAST(col_float_binary AS decimal(9)) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal(9) decimal(9) decimal(9) decimal(9)
decimal(18)/decimal(18,0) select CAST(col_float_binary AS decimal(18)) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal(18) decimal(18) decimal(18) decimal(18)
decimal(38)/decimal(38,0) select CAST(col_float_binary AS decimal(38)) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal(38) decimal(38) decimal(38) decimal(38)
decimal(p,s) select CAST(col_float_binary AS decimal(10,2)) AS to_nu FROM topg_function_cast_table WHERE id = 1; decimal(10,2) decimal(10,2) decimal(10,2) decimal(10,2)
dec select CAST(col_float_binary AS dec) AS to_nu FROM topg_function_cast_table WHERE id = 1; dec(38,0) dec(38,0) dec(38,0) dec(38,0)
dec(*) select CAST(col_float_binary AS dec(*)) AS to_nu FROM topg_function_cast_table WHERE id = 1; dec(38,0) dec(38,0) dec(38,0) dec(38,0)
dec(*,0) select CAST(col_float_binary AS dec(*,0)) AS to_nu FROM topg_function_cast_table WHERE id = 1; dec(38,0) dec(38,0) dec(38,0) dec(38,0)
dec(*,s) select CAST(col_float_binary AS dec(*,2)) AS to_nu FROM topg_function_cast_table WHERE id = 1; dec(38,2) dec(38,2) dec(38,2) dec(38,2)
dec(4)/dec(4,0) select CAST(col_float_binary AS dec(4)) AS to_nu FROM topg_function_cast_table WHERE id = 1; dec(4) dec(4) dec(4) dec(4)
dec(9)/dec(9,0) select CAST(col_float_binary AS dec(9)) AS to_nu FROM topg_function_cast_table WHERE id = 1; dec(9) dec(9) dec(9) dec(9)
dec(18)/dec(18,0) select CAST(col_float_binary AS dec(18)) AS to_nu FROM topg_function_cast_table WHERE id = 1; dec(18) dec(18) dec(18) dec(18)
dec(38)/dec(38,0) select CAST(col_float_binary AS dec(38)) AS to_nu FROM topg_function_cast_table WHERE id = 1; dec(38) dec(38) dec(38) dec(38)
dec(p,s) select CAST(col_float_binary AS dec(10,2)) AS to_nu FROM topg_function_cast_table WHERE id = 1; dec(10,2) dec(10,2) dec(10,2) dec(10,2)
numeric select CAST(col_float_binary AS numeric) AS to_nu FROM topg_function_cast_table WHERE id = 1; numeric(38,0) decimal(38,0) numeric(38,0) numeric(38,0)
numeric(*) select CAST(col_float_binary AS numeric(*)) AS to_nu FROM topg_function_cast_table WHERE id = 1; numeric(38,0) decimal(38,0) numeric(38,0) numeric(38,0)
numeric(*,0) select CAST(col_float_binary AS numeric(*,0)) AS to_nu FROM topg_function_cast_table WHERE id = 1; numeric(38,0) decimal(38,0) numeric(38,0) numeric(38,0)
numeric(*,s) select CAST(col_float_binary AS numeric(*,2)) AS to_nu FROM topg_function_cast_table WHERE id = 1; numeric(38,2) decimal(38,2) numeric(38,2) numeric(38,2)
numeric(4)/numeric(4,0) select CAST(col_float_binary AS numeric(4)) AS to_nu FROM topg_function_cast_table WHERE id = 1; numeric(4) decimal(4) numeric(4) numeric(4)
numeric(9)/numeric(9,0) select CAST(col_float_binary AS numeric(9)) AS to_nu FROM topg_function_cast_table WHERE id = 1; numeric(9) decimal(9) numeric(9) numeric(9)
numeric(18)/numeric(18,0) select CAST(col_float_binary AS numeric(18)) AS to_nu FROM topg_function_cast_table WHERE id = 1; numeric(18) decimal(18) numeric(18) numeric(18)
numeric(38)/numeric(38,0) select CAST(col_float_binary AS numeric(38)) AS to_nu FROM topg_function_cast_table WHERE id = 1; numeric(38) decimal(38) numeric(38) numeric(38)
numeric(p,s) select CAST(col_float_binary AS numeric(10,2)) AS to_nu FROM topg_function_cast_table WHERE id = 1; numeric(10,2) decimal(10,2) numeric(10,2) numeric(10,2)

使用限制

可参考统一SQL官方手册中各个目标库下关于cast函数的章节

https://www.light-pg.com/docs/LTSQL/current/index.html

到了这里,关于统一SQL 支持Oracle cast函数转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Oracle】使用 SQL Developer 连接 Oracle 数据库

    SQL Developer 是 Oracle 官方推出的一款免费的数据库开发工具,它提供了丰富的数据库开发功能,其中包括连接 Oracle 数据库的功能。 在本文中,我们将从多个方面详细阐述如何使用 SQL Developer 连接 Oracle 数据库。 在连接 Oracle 数据库前,需要需要做一些准备工作,包括安装 SQ

    2024年02月06日
    浏览(70)
  • 主流数据库(SQL Server、Mysql、Oracle)通过sql实现多行数据合为一行

    1、方法一:使用 STUFF 和 FOR XML PATH 进行多行合并成一行 (1)FOR XML PATH用法 FOR XML 是 SQL Server 提供的一种功能,允许您将查询结果转换为 XML 格式。 PATH 模式则是其中一种灵活的方式来构造自定义的XML结构。 1、基本字符串连接 : 当您想从单列中提取所有行的数据并连接成一

    2024年04月10日
    浏览(63)
  • 【Oracle 数据库 SQL 语句 】积累1

    : grouping sets ((分组字段1,分组字段2),()) : coalesce合并多个字段,显示第一个不为null的值

    2024年02月13日
    浏览(62)
  • Sql server 连接 Oracle数据库

    前提预警:本机必须装有Oracle客户端 检查是否安装Oracle客户端,并检查TNS信息是否配置完成 1.1、 在cmd中执行 sqlplus ,没有报错并出现Oracle版本号,则表示Oracle已安装 1.2、配置TNS信息(最上面的10.0.0.130可随意定义,eg:test、orcl、qerghasd…) 配置ODBC数据信息 2.1、打开ODBC数据

    2024年02月03日
    浏览(59)
  • Oracle数据库SQL Plus基础命令

    1.使用SQL*Plus登录Oracle数据库 开始 -- 所有程序 -- Oracle -- 应用程序开发 -- SQL Plus cmd窗口下输入:sqlplus 用户名/口令@主机字符串 2.使用CMD命令登录Oracle数据库 开始 -- 所有程序 -- 附件 -- 命令提示符 使用命令行登陆的连接命令格式为:sqlplus/@net_service_name username为用户名;passw

    2024年02月06日
    浏览(54)
  • oracle如何定期备份数据库sql文件

    Oracle数据库可以使用以下方法定期备份数据库的SQL文件: 使用Oracle的备份和恢复工具RMAN(Recovery Manager)进行备份。RMAN提供了全面而高效的数据库备份和恢复功能。您可以使用RMAN备份数据库的SQL文件,并将其存储在指定的位置。可以使用RMAN备份的命令来备份数据库,例如:

    2024年01月25日
    浏览(82)
  • Sql server和Oracle默认数据库

            SQL Server 和 Oracle 都有自带的一些默认数据库,保存了不同的系统信息和配置数据。         SQL Server 上的默认数据库:          master :SQL Server 引擎的系统级目录,存储了 所有系统层级的信息和元数据 ,例如登录账号信息。         tempdb:存储各种系

    2024年02月09日
    浏览(62)
  • oracle和hive之间关于sql的语法差异及转换

    1. oracle的(+) 改为hive左右连接  oracle (+)学习_cclovezbf的博客-CSDN博客 最近工作需要将oracle的存储过程转化为hive的sql脚本。遇到很多不一样的地方,例如oracle连接中有(+)号的用法。借鉴这篇文章,但是这个排版比较烂。。。先建表和插入数据首先说明(+)代表什么?代表这一侧的

    2024年02月14日
    浏览(44)
  • 用SQL语句操作Oracle数据库——数据更新

    数据库中的数据更新操作有3种:1)向表中添加若干行数据(增);2)删除表中的若干行数据(删);3)修改表中的数据(改)。对于这3种操作,SQL语言中有3种相应的语句与之对应。接下来让我们逐一详细地了解一下。 本文我们依然使用以下三个表来进行数据更新操作:

    2024年01月19日
    浏览(67)
  • Oracle数据库SQL*Plus命令行执行SQL语句时,中文乱码报错解决方法

    🎉欢迎来到Java学习路线专栏~Oracle数据库SQL*Plus命令行执行SQL语句时,中文乱码报错解决方法 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:Java学习路线 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习 🍹

    2024年01月22日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包