SQL> select 'TMP' || to_char(sq_id.nextval, '000000') res
2 from dual
3 /
RES
----------
TMP 000006
SQL> select concat('TMP',to_char(sq_id.nextval, '000000')) res
2 from dual
3 /
RES
----------
TMP 000007
请解释我如何避免上述连接字符串之间的空格
答案 0 :(得分:1)
避免使用FM(即删除尾随空格)来自char方法的空间:
to_char(sq_id.nextval,'FM000000')
答案 1 :(得分:1)
这是因为to_char(sq_id.nextval, '000000')
在输出中产生前导空格。
让我们看看:
SQL> CREATE SEQUENCE sq_id;
Sequence created.
SQL> select to_char(sq_id.nextval, '000000') from dual;
TO_CHAR
-------
000001
您可以使用 LTRIM 修剪前导空格:
SQL> SELECT 'TMP' || ltrim(to_char(sq_id.nextval, '000000'), ' ') res FROM dual;
RES
----------
TMP000002
SQL>
或者,您可以使用 FILL MODE 格式模型。
表格文件:
FM
"填充模式"。此修饰符可抑制返回中的空白填充 TO_CHAR函数的值
例如,
SQL> SELECT 'TMP' || ltrim(to_char(sq_id.nextval, 'FM000000'), ' ') res FROM dual;
RES
----------
TMP000003
SQL>