Oracle PLSQL过程中的IF EXISTS语句

Oracle PLSQL过程中的IF EXISTS语句,oracle,plsql,user-defined-types,Oracle,Plsql,User Defined Types,我是plsql的新手,尝试实现我的过程 我的程序签名看起来像 PROCEDURE signal_merge(s1 IN SIGNAL_STRUCT, s2 IN SIGNAL_STRUCT, rs OUT SIGNAL_STRUCT) SIGNAL_STRUCT有一个(我称之为field?)的“updated”,它属于updated_STRUCT类型 现在我想做一些类似的事情 if s2.updated exists do something 即使使用谷歌,我也找不到解决方案,有人能解

我是plsql的新手,尝试实现我的过程

我的程序签名看起来像

PROCEDURE signal_merge(s1 IN SIGNAL_STRUCT, s2 IN SIGNAL_STRUCT, rs OUT SIGNAL_STRUCT)
SIGNAL_STRUCT有一个(我称之为field?)的“updated”,它属于updated_STRUCT类型

现在我想做一些类似的事情

if s2.updated exists
   do something
即使使用谷歌,我也找不到解决方案,有人能解释一下我是如何做到这一点的吗

谢谢大家

我需要知道它是否为空

然后测试:

if s2.updated is not null then
  -- do something
end if;

我需要知道它是否为空

然后测试:

if s2.updated is not null then
  -- do something
end if;

.

您想知道s2.updated是否已填写:

IF s2.updated IS NOT NULL THEN
  do something
END IF;
我宁愿使用一个不可为空的布尔变量,然而,它要么是真的,要么是假的。那么你会问

IF s2.updated THEN
  do something
END IF;
<>我认为更可读。< /P> 结构声明将如下所示

TYPE signal_struct IS RECORD 
( 
  updated BOOLEAN NOT NULL,
  ...
);

您想知道s2.updated是否已填充:

IF s2.updated IS NOT NULL THEN
  do something
END IF;
我宁愿使用一个不可为空的布尔变量,然而,它要么是真的,要么是假的。那么你会问

IF s2.updated THEN
  do something
END IF;
<>我认为更可读。< /P> 结构声明将如下所示

TYPE signal_struct IS RECORD 
( 
  updated BOOLEAN NOT NULL,
  ...
);

你所说的“存在”是什么意思?传入的结构将始终具有该字段;那么你是想了解它的内容吗?也许只是它是否为空?或者你想查看嵌套对象类型中的一个字段?确切地说,我需要知道它是否为null,你所说的“exists”是什么意思?传入的结构将始终具有该字段;那么你是想了解它的内容吗?也许只是它是否为空?或者您正在尝试查看嵌套对象类型中的字段?确切地说,我需要知道它是否为null