4

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

temp := temp1 < (temp2/ 3);

我对这可能是什么数据类型有点困惑。数据类型可以是数字、字符、布尔值、日期时间和间隔类型,但由于表达式 < 和 /,这让我很反感。这让我认为它是布尔值,但我不确定。

4

2 回答 2

7

一个布尔值。它相当于:

boolean temp;
... 

if (temp1 < (temp2/3) then
  temp := true;
else
  temp := false;
end if;
于 2013-01-22T08:11:10.297 回答
0

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

于 2013-01-23T21:25:22.453 回答