프린트 하기

OS 환경 : Oracle Linux 8.7 (64bit)

 

DB 환경 : Oracle Database 19.27.0.0

 

방법 : 오라클 19c sql로 크리스마스 트리 만들기

본문에서는 오라클 sql을 이용해 크리스마스 트리를 만드는 방법을 설명함

 

 

SQLcl 실행

1
2
3
4
5
6
7
8
9
10
11
12
$ sql / as sysdba
 
 
SQLcl: Release 21.4 Production on Sat Dec 13 22:05:06 2025
 
Copyright (c) 1982, 2025, Oracle.  All rights reserved.
 
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.27.0.0.0
 
SQL>

 

 

아래 sql 수행

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
SQL>
set pages 0
set lines 200
set feedback off
set heading off
set verify off
 
WITH params AS (
  SELECT 25 AS h,
         MOD(TO_NUMBER(TO_CHAR(SYSTIMESTAMP,'SSFF')), 100000) AS f
  FROM dual
),
tree AS (
  SELECT LEVEL AS lvl,
         (SELECT h FROM params) - LEVEL AS space_cnt,
         LEVEL * 2 - 1 AS width,
         (SELECT f FROM params) AS f
  FROM dual
  CONNECT BY LEVEL <= (SELECT h FROM params)
)
SELECT
  CASE
    WHEN lvl = 1 THEN LPAD(' ', (SELECT h FROM params) - 1) || '★'
    ELSE LPAD(' ', space_cnt) ||
         REPLACE(
           RPAD('*', width, '*'),
           '*',
           CASE MOD(lvl + f, 6)
             WHEN 0 THEN 'o'
             WHEN 1 THEN '*'
             WHEN 2 THEN '@'
             WHEN 3 THEN '*'
             WHEN 4 THEN '+'
             ELSE '#'
           END
         )
  END AS christmas_tree
FROM tree
UNION ALL SELECT LPAD(' ', (SELECT h FROM params) - 2) || '|||||' FROM dual
UNION ALL SELECT LPAD(' ', (SELECT h FROM params) - 2) || '|||||' FROM dual
UNION ALL SELECT LPAD(' ', (SELECT h FROM params) - 2) || '|||||' FROM dual;
/

 

 

repeat 명령 수행(1번부터 1000000번까지 반복수행)

1
SQL> repeat 1000000 1

 

 

결과 영상

 

 

결론 :
메리크리스마스

 

 

참조 : 

https://connor-mcdonald.com/2025/12/12/an-ai-generated-sql-for-christmas/