source

Oracle에서 동일한 반복 기능

manysource 2023. 6. 24. 09:20

Oracle에서 동일한 반복 기능

SQL*Plus에서 REPITE()와 동일한 기능을 수행하는 방법을 알고 싶습니다.예를 들어, '*' 문자를 지정된 테이블의 각 항목에 지정된 정수 속성으로 지정된 값만큼 표시합니다.

트집 잡기: SQL*Plus에는 이에 대한 기능이 없습니다.데이터베이스 서버(Oracle)는 SQL 실행 기능을 제공하며 다음과 같은 기능을 제공합니다.

찾으시는 제품은rpad()

select rpad('*', 10, '*')
from dual;

will 출력

**********

자세한 내용은 설명서에서 확인할 수 있습니다. https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions159.htm#SQLRF06103

단일 문자의 경우 허용된 답변이 제대로 작동합니다.

그러나 지정된 문자열에 여러 개의 문자가 있는 경우 다음을 사용해야 합니다.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
#+-#+-#+-#+-#+-

언급URL : https://stackoverflow.com/questions/31884233/repeat-function-equivalent-in-oracle