create table strings as
with letters as (
select level num,
chr(ascii('!')+level) let
from dual
connect by level <= 126 - ascii('!')
union all
select 1, null from dual
)
select rpad(let,num,let) str from letters
Table created.
select str,
sum(lengthb(str)+1) over(order by str rows unbounded preceding) - 1 cumul_lengthb,
sum(lengthb(str)+1) over() - 1 total_lengthb,
count(*) over() num_values
from strings
where str is not null
STR | CUMUL_LENGTHB | TOTAL_LENGTHB | NUM_VALUES | " | 1 | 4463 | 93 | ## | 4 | 4463 | 93 | $$$ | 8 | 4463 | 93 | %%%% | 13 | 4463 | 93 | &&&&& | 19 | 4463 | 93 | '''''' | 26 | 4463 | 93 | ((((((( | 34 | 4463 | 93 | )))))))) | 43 | 4463 | 93 | ********* | 53 | 4463 | 93 | ++++++++++ | 64 | 4463 | 93 | ,,,,,,,,,,, | 76 | 4463 | 93 | ------------ | 89 | 4463 | 93 | ............. | 103 | 4463 | 93 | ////////////// | 118 | 4463 | 93 | 000000000000000 | 134 | 4463 | 93 | 1111111111111111 | 151 | 4463 | 93 | 22222222222222222 | 169 | 4463 | 93 | 333333333333333333 | 188 | 4463 | 93 | 4444444444444444444 | 208 | 4463 | 93 | 55555555555555555555 | 229 | 4463 | 93 | 666666666666666666666 | 251 | 4463 | 93 | 7777777777777777777777 | 274 | 4463 | 93 | 88888888888888888888888 | 298 | 4463 | 93 | 999999999999999999999999 | 323 | 4463 | 93 | ::::::::::::::::::::::::: | 349 | 4463 | 93 | ;;;;;;;;;;;;;;;;;;;;;;;;;; | 376 | 4463 | 93 | <<<<<<<<<<<<<<<<<<<<<<<<<<< | 404 | 4463 | 93 | ============================ | 433 | 4463 | 93 | >>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 463 | 4463 | 93 | ?????????????????????????????? | 494 | 4463 | 93 | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | 526 | 4463 | 93 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | 559 | 4463 | 93 | BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB | 593 | 4463 | 93 | CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC | 628 | 4463 | 93 | DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD | 664 | 4463 | 93 | EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE | 701 | 4463 | 93 | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | 739 | 4463 | 93 | GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG | 778 | 4463 | 93 | HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH | 818 | 4463 | 93 | IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII | 859 | 4463 | 93 | JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ | 901 | 4463 | 93 | KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK | 944 | 4463 | 93 | LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL | 988 | 4463 | 93 | MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM | 1033 | 4463 | 93 | NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN | 1079 | 4463 | 93 | OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO | 1126 | 4463 | 93 | PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP | 1174 | 4463 | 93 | QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ | 1223 | 4463 | 93 | RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR | 1273 | 4463 | 93 | SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS | 1324 | 4463 | 93 |
---|
select listagg(str, '!') within group(order by str) ||
case when max(total_lengthb) > 4000 then
'! ... (' || (max(num_values) - count(*)) || ')'
end str_list
from (
select str,
sum(lengthb(str)+1) over(order by str) - 1 cumul_lengthb,
sum(lengthb(str)+1) over() - 1 total_lengthb,
count(*) over() num_values
from strings
where str is not null
)
where total_lengthb <= 4000
or cumul_lengthb <= 4000 - length('! ... (' || num_values || ')')
STR_LIST | "!##!$$$!%%%%!&&&&&!''''''!(((((((!))))))))!*********!++++++++++!,,,,,,,,,,,!------------!.............!//////////////!000000000000000!1111111111111111!22222222222222222!333333333333333333!4444444444444444444!55555555555555555555!666666666666666666666!7777777777777777777777!88888888888888888888888!999999999999999999999999!:::::::::::::::::::::::::!;;;;;;;;;;;;;;;;;;;;;;;;;;!<<<<<<<<<<<<<<<<<<<<<<<<<<<!============================!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>!??????????????????????????????!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB!CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC!DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD!EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE!FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF!GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG!HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH!IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK!LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL!MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM!NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP!QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ!RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR!SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS!TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT!UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU!VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV!WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW!XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX!YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY!ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ![[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[!\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\!]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]!^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!______________________________________________________________!```````````````````````````````````````````````````````````````!aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb!cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc!ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd!eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee!fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff!gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg!hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh!iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii!jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj!kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk!lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll!mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm!nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn!oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo!ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp!qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq!rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr!ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss!ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt!uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu!vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww!xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx! ... (6) |
---|