AS400RPGLE/free内嵌SQL数据结构

AS400 RPGLE/free embedded SQL against data structure

我想知道是否可以针对数据结构而不是文件执行 SQL。

例如,我有一个包含 100 个字段的外部数据结构,假设命名约定为 field1、field2 等......数据结构名称为 DS1。 DS1 结构被传递到程序中,所有 100 个字段都包含值。我想知道是否可以这样做:

/free
  exec sql                 
  update DS1 set field1 = field2;  
/end-free

我不确定是否可以查询数据结构而不是转到磁盘到实际文件,但如果是的话,它会让事情变得更快更简单。

谢谢!

简单的回答,没有。

最接近您要求的是 VALUES INTO 语句。

 d myDS            ds                  qualified
 d  fld1                         10a
 d  fld2                         10a


  /free
    myDS.fld1 = 'HELLO';
    exec sql
       values (:myDS.fld1) into :myds.fld2;

    dsply myDS.fld2;
    *INLR = *ON;
    return;
  /end-free     

当一个简单的 myDS.fld2 = myDS.fld1; 就足够时,我不明白你为什么要这样做。我认为这与您的另一个问题有关: