学习关于PL/SQL中的SQL数据类型。我有一个问题,以下表达式是什么数据类型:
temp := temp1 < (temp2/ 3);
我对这个数据类型感到有些困惑。数据类型可以是数字、字符、布尔、日期时间和间隔类型,但是由于表达式 < 和 /,这使我认为它是布尔类型,但我不确定。
学习关于PL/SQL中的SQL数据类型。我有一个问题,以下表达式是什么数据类型:
temp := temp1 < (temp2/ 3);
我对这个数据类型感到有些困惑。数据类型可以是数字、字符、布尔、日期时间和间隔类型,但是由于表达式 < 和 /,这使我认为它是布尔类型,但我不确定。
它是一个布尔类型。它的等价形式为:
boolean temp;
...
if (temp1 < (temp2/3) then
temp := true;
else
temp := false;
end if;
在这种情况下,Oracle 有点复杂。SQL 和 PL/SQL 被两个不同的引擎解释。它们各自拥有自己的数据类型集,即使它们看起来相似也是如此。简单地说,在 SQL 中的 VARCHAR2 与 在 PL/SQL 中的 VARCHAR2 是不同的。当你开始处理集合时,情况会变得更加混乱。而 SQL 并没有像 PL/SQL 那样具有 BOOLEAN 这样的数据类型。 唯一的例外是 SQL 函数 LNNVL,它接受条件作为参数,但无论如何,您都不能在 SQL 查询中使用诸如“true”或“false”之类的文字。