WITH a AS (SELECTDISTINCT round(SUM(x) over(ORDERBY n)) x, round(SUM(y) over(ORDERBY n)) y FROM (SELECT n, cos(trunc(n / 20) * (1 - 1 / 5) * 3.1415926) * 2 x, sin(trunc(n / 20) * (1 - 1 / 5) * 3.1415926) y FROM (SELECT rownum - 1 n FROM all_objects WHERE rownum <= 20 * 5))) SELECT REPLACE(sys_connect_by_path(point, '/'), '/', NULL) star FROM (SELECT b.y, b.x, decode(a.x, NULL, ' ', '*') point FROM a, (SELECT * FROM (SELECT rownum - 1 + (SELECT MIN(x) FROM a) x FROM all_objects WHERE rownum <= (SELECT MAX(x) - MIN(x) + 1 FROM a)), (SELECT rownum - 1 + (SELECT MIN(y) FROM a) y FROM all_objects WHERE rownum <= (SELECT MAX(y) - MIN(y) + 1 FROM a))) b WHERE a.x(+) = b.x AND a.y(+) = b.y) WHERE x = (SELECT MAX(x) FROM a) STARTWITH x = (SELECT MIN(x) FROM a) CONNECTBY y = PRIOR y AND x = PRIOR x + 1;
WITH a AS (SELECTDISTINCT round(a.x + b.x) x, round(a.y + b.y) y FROM (SELECT (SUM(x) over(ORDERBY n)) x, round(SUM(y) over(ORDERBY n)) y FROM (SELECT n, cos(n / 30 * 3.1415926) * 2 x, sin(n / 30 * 3.1415926) y FROM (SELECT rownum - 1 n FROM all_objects WHERE rownum <= 30 + 30))) a, (SELECT n, (SUM(x) over(ORDERBY n)) x, round(SUM(y) over(ORDERBY n)) y FROM (SELECT n, cos(m / 3 * 3.1415926) * 2 * 15 x, sin(m / 3 * 3.1415926) * 15 y FROM (SELECTCASE WHEN rownum <= 2THEN 3 WHEN rownum = 3THEN -2 ELSE -6 END m, rownum - 1 n FROM all_objects WHERE rownum <= 5))) b) SELECT REPLACE(sys_connect_by_path(point, '/'), '/', NULL) star FROM (SELECT b.y, b.x, decode(a.x, NULL, ' ', '*') point FROM a, (SELECT * FROM (SELECT rownum - 1 + (SELECT MIN(x) FROM a) x FROM all_objects WHERE rownum <= (SELECT MAX(x) - MIN(x) + 1 FROM a)), (SELECT rownum - 1 + (SELECT MIN(y) FROM a) y FROM all_objects WHERE rownum <= (SELECT MAX(y) - MIN(y) + 1 FROM a))) b WHERE a.x(+) = b.x AND a.y(+) = b.y) WHERE x = (SELECT MAX(x) FROM a) STARTWITH x = (SELECT MIN(x) FROM a) CONNECTBY y = PRIOR y AND x = PRIOR x + 1;