DELETE(删除记录)

代码 因子1 因子2 结果字段 指标
删除 (E) 搜索-arg name (文件或记录格式)   NR ER _

DELETE 操作从数据库文件中删除记录。 该文件必须是可删除的文件 (通过在自由格式定义的 USAGE 关键字中指定 *DELETE 来标识,或者通过固定格式文件描述规范的 位置 17 中的 U 来标识)。 永远无法检索已删除的记录。

如果未指定搜索参数 (search-arg) ,那么 DELETE 操作将删除当前记录 (检索到的最后一条记录)。 该记录必须已被先前的输入操作 (例如, chain 或 READ) 锁定。

搜索参数 search-arg必须是用于检索要删除的记录的键或相对记录号。 如果通过键进行访问,那么 search-arg 可以是字段名称,命名常量,象征常量或文字形式的单个键。

如果该文件是外部描述的文件,那么 search-arg 也可以是 KLIST 名称,值列表或 %KDS 格式的组合键。 图形和 UCS-2 键字段必须与文件中的键具有相同的 CCSID。 有关 %KDS 的示例,请参阅 %KDS (数据结构中的搜索参数)末尾的示例。 如果访问是按相对记录号进行的,那么 search-arg 必须是整数文字或小数位为零的数字字段。 有关使用值列表来搜索要删除的记录的示例,请参阅 图 2

请参阅 *STRICTKEYS ,以获取有关控制关键字 EXPROPTS (*STRICTKEYS) 对用于指定具有值列表或 %KDS 的键的规则的影响的信息。

name 操作数必须是更新文件的名称或要从中删除记录的文件中的记录格式。 记录格式名仅对外部描述文件有效。 如果未指定 search-arg ,那么记录格式名称必须是从文件中读取的最后一条记录的名称; 否则,将发生错误。

如果指定了 search-arg ,那么如果在文件中找不到要删除的记录,那么位置 71 和 72 可以包含设置的指示符。 如果未指定 search-arg ,请将这些位置留空。 此信息也可以从 %FOUND 内置函数中获取,如果找不到记录,那么该函数将返回 "0" ,如果找到记录,那么返回 "1"。

要处理 DELETE 异常 (文件状态码 大于 1000) ,可以指定操作码扩展器 "E" 或错误指示符 ER ,但不能同时指定两者。 有关错误处理的更多信息,请参阅 文件异常/错误

IBM i 操作系统下,如果在对 file-name 中指定的文件成功执行 DELETE 操作后对该文件执行读操作,则会获得删除记录后的下一条记录。

请参阅 数据库空值支持 ,以获取有关使用可空字段和键处理记录的信息。

有关更多信息,请参阅 文件操作

注:
  1. 仅当搜索自变量为列表或为 %KDS () 时,才允许操作码扩展器 H , M 和 R。 请参阅 文件操作的密钥确保准确性
  2. 将位置 75 和 76 留空。