PL/SQL查漏补缺(1)-----数据类型

北战南征 提交于 2019-12-01 17:32:37

1.1 数据命名规则

  声明时可以把名字放在双引号之中,实际上可以跳过除最长30字符的所有限制,例如:

declare

    "True_lower_case"  INTEGER;

    "    "          DATE;  --没错,四个空格也可以!

    “123_gogo”     varchar2(10);

begin

end;

 

  注意:代码中要引用这些名字也同样需要使用双引号。

1.2 数据类型

  1.2.1 布尔类型

    PL/SQL支持三值的布尔数据类型:TRUE,FALSE,NULL

  1.2.2 二进制数据类型

    Oracle支持几种形式的二进制数据,包括RAW,BLOB,和BFILE

  1.2.3 Internet数据类型

    Oracle提供了针对XML和URI数据的数据类型,以及一个叫做DBUri-REF的类。

    可以用SYS_XML.GEN函数和DBMS_XMLGEN程序包在数据库中查询和存储XML数据。还允许我们用SQL语句中的原生操作符通过Xpath语言搜索XML文档。

    URI相关的类型有URIType和HTTPURIType,都属于一个对象继承层次的一部分,可以用于保存外部WEB页面的URL和文件,同时也可以指向内部数据库的数据。

  1.2.4 “Any”数据类型

    “Any”类型可以使我们动态的封装和访问类型描述、数据实例以及任何其他SQL类型的数据实例集。

    “Any”数据类型包括 AnyType, AnyData 和 AnyDataSet.

1.3 类型转换

  1.3.1 隐式类型转换

    下图显示了PL/SQL可以完成的隐式类型转换。

From\To CHAR VARCHAR2 NCHAR NVARCHAR2 DATE

DATETIME/
INTERVAL

NUMBER BINARY_
FLOAT

BINARY_
DOUBLE

BINARY_
INTEGER
PLS_
INTEGER
SIMPLE_
INTEGER
LONG RAW ROWID CLOB BLOB NCLOB
CHAR \  
VARCHAR2 \  
NCHAR \            
NVARCHAR2 \              
DATE \                          
DATETIME/
INTERVAL
  \                      
NUMBER     \            
BINARY_
FLOAT
    \            
BINARY_
DOUBLE
    \          
BINARY_
INTEGER
    \          
PLS_
INTEGER
    \          
SIMPLE_
INTEGER
    \          
LONG         \    
RAW                 \      
ROWID                       \      
CLOB                     \  
BLOB                               \  
NCLOB                       \

    隐式转换类型的缺陷:
      1)PL/SQL是静态类型语言。如果程序执行了隐式类型转换,会失去代码的清晰和安全性

      2)对代码总会产生影响

      3)隐式类型转换依赖于代码的上下文

      4)显示类型转换相对来说具有更好的可读性

    总之,应尽量避免使用隐式类型转换。

  1.3.2 显示类型转换

    CAST函数是把一个内置的数据类型或者集合类型的数据转换成另外一个置数据类型或者集合类型

     

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!