我甚至不知道这是否可行,但我想要完成的是在不使用SELECT INTO
的情况下比较表中的单个不同值。这不是必需的。我所要做的就是看它是否可以完成。显然我可以使用SELECT INTO
来解决这个问题,但我认为只用一行就可以了。
以下是我想要实现的目标:
var1 := 'some_text';
if var2 > 0
and var1 <> (select distinct col_text from some_table)
then
null;
这不是合法的oracle plsql。因此,如果不添加任何其他代码行,如何才能进行比较呢?
许多不同尝试中的一个:
我的想法背后是创建一个记录类型,并希望将它转换为这种类型所有在一行,然后它将被评估。只是一个FYI我想到了这个,因为我有PHP背景。
--rec is of %rowtype
var1 := 'some_text';
if var2 > 0
and var1 <> (rec := (select distinct col_text from some_table)).col_text
then
null;
研究
从我在oracle文档中读到的内容看起来并不可能,但我正在尝试查看是否存在某种类型的解决方法。
http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/fundamentals.htm#CBJCAHGF
我检查了转让声明中的文档。希望我能找到一些有趣的东西。
http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/assignment_statement.htm#LNPLS01301
答案 0 :(得分:3)
你想做的事是不可能的。您需要将select语句的结果返回到PL / SQL变量中,以便执行IF语句。
Oracle有不同的SQL和PL / SQL引擎。它们密切相关,但PL / SQL仍然是一种“客户”语言。