我想知道是否可以针对数据结构而不是文件执行 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;
就足够了,我无法理解。我认为这与您的另一个问题有关:操作中的 AS400 RPGLE/自由动态变量