Oracle PL/SQL 数据类型

Posted

技术标签:

【中文标题】Oracle PL/SQL 数据类型【英文标题】:Oracle PL/SQL Datatype 【发布时间】:2013-01-05 10:03:05 【问题描述】:

了解 PL/SQL 中的 SQL 数据类型。我对以下表达式的数据类型有疑问:

temp := temp1 < (temp2/ 3);

我对这可能是什么数据类型有点困惑。数据类型可以是 Numeric、Characters、Boolean、Datetime 和 Interval 类型,但由于表达式

【问题讨论】:

【参考方案1】:

一个布尔值。相当于:

boolean temp;
... 

if (temp1 < (temp2/3) then
  temp := true;
else
  temp := false;
end if;

【讨论】:

【参考方案2】:

在这种情况下,Oracle 有点复杂。 SQL 和 PL/SQL 由两个不同的引擎解释。他们每个人都有自己的一组数据类型,即使它们看起来很相似。简单地说,SQL 中的 VARCHAR2 与 PL/SQL 中的 VARCHAR2 不同。当您开始使用集合时,它会变得更加混乱。 SQL 没有像 BOOLEAN 这样的任何数据类型,而 PL/SQL 有。 唯一的例外是 SQL 函数 LNNVL,它接受一个条件作为参数,但无论如何你不能使用像“true”或“false”这样的文字是 SQL 查询。

【讨论】:

以上是关于Oracle PL/SQL 数据类型的主要内容,如果未能解决你的问题,请参考以下文章

Oracle PL/SQL 第五章–复合类型

Oracle PL/SQL 第四章--数据类型

Oracle之PL/SQL编程_数据类型与定义变量和常量

Oracle PL/SQL表记录类型

从 pl/sql 中的函数返回数据作为光标而不创建类型 oracle 11g

Oracle_PL/SQL 游标