OpenEdge进展4GL查询%之后返回(丢失)
问题描述:
DEFINE TEMP-TABLE tt_pay_terms NO-UNDO
FIELD pt_terms_code LIKE payment_terms.terms_code
FIELD pt_description LIKE payment_terms.description.
DEFINE VARIABLE htt AS HANDLE NO-UNDO.
htt = TEMP-TABLE tt_pay_terms:HANDLE.
FOR EACH platte.payment_terms
WHERE (
active = true
AND system_id = "000000"
)
NO-LOCK:
CREATE tt_pay_terms.
ASSIGN
pt_terms_code = payment_terms.terms_code.
pt_description = payment_terms.description.
END.
htt:WRITE-JSON("FILE", "/dev/stdout", FALSE).
我写了这个查询,像这样OpenEdge进展4GL查询%之后返回(丢失)
[pt_terms_code] => 0.4%!N(MISSING)ET46
[pt_description] => 0.4%! (MISSING)DAYS NET 46
虽然我认为(使用SQL查询),该数据应为返回的数据
0.4%45NET46
0.4% 45 DAYS NET 46
我做一个假设%可能是一些特殊字符(如我碰到过类似的问题)。我尝试过从表中取出所有数据,并得到相同的结果(即,不创建临时表并仅填充所有仅有的两个字段)。
对此问题有何建议?
我对4gl仍然很陌生,所以上面的查询可能是非常错误的。所有评论和批评都是受欢迎的。
答
我怀疑如果你试试这个:
FOR EACH platte.payment_terms NO-LOCK
WHERE (active = true AND system_id = "000000"):
display
payment_terms.terms_code
payment_terms.description
.
END.
你会看到什么查询实际上返回。 (WRITE-JSON在查询后添加一个图层。)您可能会发现数据中包含意外的内容。
在我看来,“%”看起来更像格式化 - 条款可能是0.4%。
然后,您在说明字段的内容中似乎存在一些问题。我的猜测是,当用户输入数据时,代码页不匹配,结果字段中出现乱码。
我会试试看。我之前遇到过这个问题,并且必须将所有内容解析为一个变量,然后将该变量分配给我的临时表字段。 –