将前导零添加到进行中的字符变量 4gl
Add leading zeros to a character variable in progress 4gl
我正在尝试导入 .csv 文件以匹配数据库中的记录。但是,数据库记录有前导零。这是一个字符字段 数据量偏高一点。
这里数据库中字段的长度是x(15).
我面临的问题是 .csv 文件包含类似示例 AB123456789 的数据,其中数据库字段具有“00000AB123456789”。
我正在将 .csv 导入字符变量。
有人可以让我知道我应该怎么做才能使用进度查询获取前缀零吗?
谢谢。
您需要使用“0”对输入字符串进行 FILL() 以将其填充到特定长度。您可以使用类似于以下的代码来做到这一点:
define variable inputText as character no-undo format "x(15)".
define variable n as integer no-undo.
input from "input.csv".
repeat:
import inputText.
n = 15 - length( inputText ).
if n > 0 then
inputText = fill( "0", n ) + inputText.
display inputText.
end.
input close.
用您的实际字段名称替换 inputText 并使用您实际用于导入 CSV 数据的任何机制。
仅供参考 - “数据库中字段的长度”不是“x(15)”。那是一个显示格式化字符串。数据字典有一个默认的格式字符串,它是在定义模式时创建的,但它对实际存储在数据库中的内容绝对没有影响。所有进度数据存储为可变长度长度。它没有被填充以适应显示格式,事实上,它可以被“过度填充”,应用程序这样做是非常非常普遍的。这让 SQL 认为显示格式是某种长度限制的报告工具感到非常沮丧。不是。
我正在尝试导入 .csv 文件以匹配数据库中的记录。但是,数据库记录有前导零。这是一个字符字段 数据量偏高一点。 这里数据库中字段的长度是x(15).
我面临的问题是 .csv 文件包含类似示例 AB123456789 的数据,其中数据库字段具有“00000AB123456789”。
我正在将 .csv 导入字符变量。
有人可以让我知道我应该怎么做才能使用进度查询获取前缀零吗?
谢谢。
您需要使用“0”对输入字符串进行 FILL() 以将其填充到特定长度。您可以使用类似于以下的代码来做到这一点:
define variable inputText as character no-undo format "x(15)".
define variable n as integer no-undo.
input from "input.csv".
repeat:
import inputText.
n = 15 - length( inputText ).
if n > 0 then
inputText = fill( "0", n ) + inputText.
display inputText.
end.
input close.
用您的实际字段名称替换 inputText 并使用您实际用于导入 CSV 数据的任何机制。
仅供参考 - “数据库中字段的长度”不是“x(15)”。那是一个显示格式化字符串。数据字典有一个默认的格式字符串,它是在定义模式时创建的,但它对实际存储在数据库中的内容绝对没有影响。所有进度数据存储为可变长度长度。它没有被填充以适应显示格式,事实上,它可以被“过度填充”,应用程序这样做是非常非常普遍的。这让 SQL 认为显示格式是某种长度限制的报告工具感到非常沮丧。不是。