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;
就足够时,我不明白你为什么要这样做。我认为这与您的另一个问题有关:
我想知道是否可以针对数据结构而不是文件执行 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;
就足够时,我不明白你为什么要这样做。我认为这与您的另一个问题有关: