我正在建立这个字符串:
text_ := 'NAME LNAME AGE'||chr(13)||chr(10);
FOR person_ IN list LOOP
text_ := text_ ||person_.name||' '||person_.lname||' '||person_.age||chr(13)||chr(10);
END LOOP;
循环将导致:
NAME LNAME AGE
name lname 18
namename lname 18
期望的结果:
NAME LNAME AGE
name lname 18
namename lname 18
如果字符串中的值没有达到固定值,有没有办法告诉字符串用空格填充?
使用RPAD:
text_ := text_||rpad('Name', 30)||rpad('Date', 12)||chr(13)||chr(10)||chr(13)||chr(10);
FOR op_ IN get_op LOOP
text_ := text_||rpad(op_.NAME, 30)||rpad(op_.DATE,12)||chr(13)||chr(10);
END LOOP;
结果:
Name Date
UserUserUser 2014-04-03
UserUser 2014-04-04
UserUser 2014-04-03
答案 0 :(得分:1)
使用rpad
text_ := text_ ||rpad(person_.name,40)||rpad(person_.lname,40)||rpad(person_.age,40)||chr(13)||chr(10);
测试用例
DECLARE
t VARCHAR2(1000);
BEGIN
t := RPAD('NAME',10)||RPAD('LNAME',10)||RPAD('AGE',10)||chr(13)||chr(10);
FOR i IN 8..11
LOOP
t := t ||RPAD('Name'||i,10)||RPAD('lname'||i,10)||RPAD(i,10)||chr(13)||chr(10);
END LOOP;
dbms_output.put_line(t);
END;
输出:
NAME LNAME AGE
Name8 lname8 8
Name9 lname9 9
Name10 lname10 10
Name11 lname11 11