zoukankan      html  css  js  c++  java
  • Oracle DB 隐式和显示数据类型转换

    • 转换函数
    除了Oracle  数据类型,还可以使用美国国家标准协会(ANSI) 、DB2 和SQL/DS  数据类型定义Oracle DB 中表的列。但是,Oracle Server  会在内部将这些数据类型转换为Oracle 数据类型。
    在某些情况下,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  函数中的作用相同。
  • 相关阅读:
    Java对象序列化文件追加对象的问题,以及Java的读取多个对象的问题解决方法。
    解决chrome在docky上的图标模糊或不能锁定的问题
    获取表单中的输入内容、单选按钮、复选框的输入内容
    用idea写servlet文件
    get方法和post方法
    解决Only a type can be imported. com.mysql.jdbc.Connection resolves to a package的报错问题
    idea中如何配置tomcat
    JDBC中的PreparedStatement
    JDBC中的ResultSet
    JDBCl链接中Statement
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13316917.html
Copyright © 2011-2022 走看看