我想知道如何在SQL * Plus中实现与REPEAT()相同的功能。例如,考虑这个问题:显示字符' *'与为给定表中的每个条目指定的整数属性指定的值一样多次。
答案 0 :(得分:15)
挑剔:SQL * Plus没有任何功能。 数据库服务器(Oracle)提供了执行SQL的功能,并具有以下功能:
您正在寻找rpad()
select rpad('*', 10, '*')
from dual;
将输出
**********
更多详情可在手册中找到:https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions159.htm#SQLRF06103
答案 1 :(得分:1)
对于单个字符,接受的答案正常。
但是,如果给定字符串中有多个字符,则需要使用RPAD
以及此类length
函数。
WITH t (str) AS
(
SELECT 'a'
FROM DUAL
UNION ALL SELECT 'abc'
FROM DUAL
UNION ALL SELECT '123'
FROM DUAL
UNION ALL SELECT '#+-'
FROM DUAL
)
SELECT RPAD(str, 5*LENGTH(str), str) repeated_5_times
FROM t;
<强>输出强>:
REPEATED_5_TIMES
---------------
aaaaa
abcabcabcabcabc
123123123123123
#+-#+-#+-#+-#+-