度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1355|回复: 3
打印 上一主题 下一主题

[分享] Oracle DB 隐式和显式数据类型转换

[复制链接]

348

主题

3572

帖子

9335

积分

论坛元老

Rank: 8Rank: 8

积分
9335
跳转到指定楼层
楼主
发表于 2020-6-9 22:14:23 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

在某些情况下,Oracle Server 会收到数据类型与预期的数据类型不同的数据。发生这种情况时,Oracle Server 可自动将该数据转换为预期的数据类型。这种数据类型转换可以由Oracle Server 隐式完成,也可以由用户显式完成。
隐式数据类型转换将按照下面说明的规则进行。
显式数据类型转换可通过使用转换函数来执行。转换函数用于将一种数据类型的值转换为另一种数据类型的值。
通常,函数名称的格式遵循data type TO data type惯例。
第一个数据类型是输入数据类型,第二个数据类型是输出数据类型。
注:尽管可以使用隐式数据类型转换,但仍建议执行显式数据类型转换以确保 SQL 语句的可靠性。

  • 隐式数据类型转换

表达式中,Oracle Server 可以自动执行以下转换:

从 VARCHAR2 或CHAR隐式转换为NUMBER
从VARCHAR2 或CHAR隐式转换为DATE


Oracle Server 可以在表达式中自动执行数据类型转换。例如,表达式hire_date > '01-JAN-90' 将导致字符串'01-JAN-90' 隐式转换为一个日期。因此,表达式中的VARCHAR2 或CHAR 值可以隐式转换为数字或日期数据类型。


对于表达式计算,Oracle Server 可以自动执行以下转换:

从NUMBER隐式转换为VARCHAR2 或CHAR
从DATE隐式转换为VARCHAR2 或CHAR


通常,Oracle Server 在需要进行数据类型转换时使用适用于表达式的规则。例如,表达式grade = 2 将导致数字2 隐式转换为字符串“2”,因为grade 为CHAR(2)列。
注:只有字符串代表一个有效数字时,CHAR 到NUMBER 的转换才能成功。




  • 显式数据类型转换

SQL 提供了以下三种函数,用于将值从一种数据类型转换为另一种数据类型:



TO_CHAR( number | date,[ fmt ],[nlsparams])

按照格式样式 fmt ,将数字或日期值转换为 VARCHAR2 字符串。
数字转换:nlsparams 参数指定以下由数字格式元素返回的字符:
-- 小数点字符
--组分隔符
--本地货币符号
--国际货币符号
如果省略 nlsparams 或者任何其它参数, 则该函数将在会话中使用默认参数值。
日期转换:nlsparams 参数指定返回的月 和日名称以及缩写所用的语言。如果省略此 参数,则该函数将在会话中使用默认的日期 语言。


TO_NUMBER(char,[fmt], [nlsparams] )

按照可选格式样式 fmt 指定的格式,将包含数字的字符串转换为数字。
对于数字转换,nlsparams 参数在此函数中的作用与它在 TO_ CHAR 函数中的作用相同。

TO_DATE(char ,[fmt ],[ nlsparams])

按照指定的 fmt ,将代表日期的字符串转换 为日期值。如果省略 fmt ,则格式为 DD-MON-YY 。
对于日期转换,nlsparams 参数在此函数中的作用与它在 TO_ CHAR 函数中的作用相同。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复

使用道具 举报

348

主题

3572

帖子

9335

积分

论坛元老

Rank: 8Rank: 8

积分
9335
沙发
 楼主| 发表于 2020-6-9 22:15:43 | 只看该作者
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

198

主题

1313

帖子

3784

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3784
板凳
发表于 2020-6-10 21:03:53 | 只看该作者
类型转换很多地方要用哈。
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
地板
发表于 2020-6-11 14:57:33 | 只看该作者
比较专业!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-28 05:38 , Processed in 0.130419 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表