Oracle PL/SQL 数据类型:布尔值、数字、日期 [示例]
什么是 PL/SQL 数据类型?
数据类型 在 PL/SQL 中用于定义如何存储、处理和处理数据 Oracle 在数据存储和处理过程中,数据类型与特定的存储格式和范围约束相关。 Oracle,每个值或常量都被赋予一种数据类型。
PL/SQL 和 SQL 数据类型是,SQL 数据类型仅限于表列,而 PL/SQL 数据类型用于 PL/SQL 块. 本教程后面会对此进行详细介绍。
以下是不同 Oracle PL/SQL 数据类型:
PL/SQL CHARACTER 数据类型
这种数据类型基本上以字符串格式存储字母数字字符。
将文字值分配给 CHARACTER 数据类型时,应始终用单引号引起来。
该字符数据类型进一步分类如下:
- CHAR 数据类型(固定字符串大小)
- VARCHAR2 数据类型(可变字符串大小)
- VARCHAR 数据类型
- NCHAR(本机固定字符串大小)
- NVARCHAR2(本机变量字符串大小)
- 长而长的生
数据类型 | 描述 | 句法 |
---|---|---|
CHAR | 该数据类型存储字符串值,字符串的大小在声明时是固定的 变量.
|
grade CHAR; manager CHAR (10):= 'guru99'; 语法解释:
|
VARCHAR2 | 该数据类型存储字符串,但是字符串的长度不固定。
|
manager VARCHAR2(10) := ‘guru99'; 语法解释:
|
变量 | 这与 VARCHAR2 数据类型同义。
|
manager VARCHAR(10) := ‘guru99'; 语法解释:
|
全国煤焦油储量调查 | 该数据类型与CHAR数据类型相同,但是字符集为国家字符集。
|
native NCHAR(10); 语法解释:
|
NVARCHAR2 |
该数据类型与 VARCHAR2 数据类型相同,但字符集将是国家字符集。
|
Native var NVARCHAR2(10):='guru99'; 语法解释:
|
LONG 和 LONGRAW | 此数据类型用于存储大型文本或原始数据,最大大小为 2GB。
|
Large_text LONG; Large_raw LONG RAW; 语法解释:
请注意: 不建议使用 LONG 数据类型 Oracle. 相反,应该优先使用 LOB 数据类型。 |
PL/SQL NUMBER 数据类型
此数据类型存储最高 38 位精度的定点数或浮点数。此数据类型用于处理仅包含数字数据的字段。变量可以声明为带有精度和小数位详细信息,也可以不声明这些信息。在为该数据类型赋值时,值不需要括在引号中。
A NUMBER(8,2); B NUMBER(8); C NUMBER;
语法解释:
- 在上面的声明中,第一个声明声明变量“A”是数字数据类型,总精度为 8,小数位数为 2。
- 第二个声明声明变量“B”是数字数据类型,总精度为 8 个且没有小数位。
- 第三个声明是最通用的,声明变量“C”为数字数据类型,对精度或小数位没有限制。它最多可以容纳 38 位数字。
PL/SQL BOOLEAN 数据类型
此数据类型存储逻辑值。 Oracle 布尔数据类型表示 TRUE 或 FALSE,主要用于条件语句。为这种数据类型赋值时,值不需要括在引号中。
Var1 BOOLEAN;
语法解释:
- 在上面的代码中,变量“Var1”被声明为 BOOLEAN 数据类型。根据设置的条件,代码的输出将是真或假。
PL/SQL DATE 数据类型
此数据类型以日期格式存储值,如日期、月份和年份。每当使用 DATE 数据类型定义变量时,它都可以保存时间信息,并且默认情况下,如果未指定,时间信息将设置为 12:00:00。在为这种数据类型分配值时,需要将值括在引号中。
标准 Oracle 输入和输出的时间格式是“DD-MON-YY”,并且在会话级别的 NLS_PARAMETERS (NLS_DATE_FORMAT) 再次设置。
newyear DATE:='01-JAN-2015'; current_date DATE:=SYSDATE;
语法解释:
- 在上面的代码中,变量“newyear”被声明为 DATE 数据类型,并被赋予 1 月 XNUMX 日的值st,2015年日期。
- 第二个声明将变量 current_date 声明为 DATE 数据类型,并将当前系统日期赋值。
- 这两个变量都保存了时间信息。
PL/SQL LOB 数据类型
这种数据类型主要用于存储和操作大量非结构化数据,如图像、多媒体文件等。 Oracle 更喜欢 LOB 而不是 LONG 数据类型,因为它比 LONG 数据类型更灵活。以下是 LOB 相对于 LONG 数据类型的几个主要优势。
- 表中具有 LONG 数据类型的列数限制为 1,而表对具有 LOB 数据类型的列数没有限制。
- 数据接口工具在数据复制时接受表的 LOB 数据类型,但会忽略表的 LONG 列。这些 LONG 列需要手动复制。
- LONG 列的大小为 2GB,而 LOB 最多可存储 128 TB。
- Oracle 根据现代要求,在其每个版本中不断改进 LOB 数据类型,而 LONG 数据类型保持不变且没有得到太多更新。
因此,使用 LOB 数据类型而不是 LONG 数据类型总是好的。以下是不同的 LOB 数据类型。它们最多可以存储 128 TB 的大小。
- BLOB
- CLOB 和 NCLOB
- 档案
数据类型 | 描述 | 句法 |
---|---|---|
BLOB | 此数据类型以二进制文件格式存储 LOB 数据,最大大小为 128 TB。它不根据字符集详细信息存储数据,因此它可以存储非结构化数据,例如多媒体对象、图像等。 |
Binary_data BLOB; 语法解释:
|
CLOB 和 NCLOB | CLOB 数据类型将 LOB 数据存储在字符集中,而 NCLOB 将数据存储在本机字符集中。由于这些数据类型使用基于字符集的存储,因此它们无法存储无法放入字符串的数据(如多媒体、图像等)。这些数据类型的最大大小为 128 TB。 |
Charac_data CLOB; 语法解释:
|
档案 |
|
总结
我们已经介绍了 PL / SQL 以及它们的语法。我们将在后续主题中学习复杂数据类型。