2017-03-22 55 views
0
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仍然很陌生,所以上面的查詢可能是非常錯誤的。所有評論和批評都是受歡迎的。

回答

0

我懷疑如果你試試這個:

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%。

然後,您在說明字段的內容中似乎存在一些問題。我的猜測是,當用戶輸入數據時,代碼頁不匹配,結果字段中出現亂碼。

+0

我會試試看。我之前遇到過這個問題,並且必須將所有內容解析爲一個變量,然後將該變量分配給我的臨時表字段。 –