|
|
|
Replace
|
|||
|---|---|---|---|
|
#18+
Задачка с собеседования. Как используя только один replace (не regexp_replace), обрезать строки до первого символа x. То есть на входном наборе Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Получить strabcdef12300f030123456789 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 17:37 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Lary DenisКак используя только один replace (не regexp_replace), обрезать строки до первого символа x.Нельзя. Но для всяких гуёв видимость создать можно. Код: plsql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 17:45 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Lary Denis, Можно один replace и один rtrim. Слабо верится, что кто-то может такое спросить на собеседовании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 17:59 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopLary Denis, Можно один replace и один rtrim. Слабо верится, что кто-то может такое спросить на собеседовании.А, еще недокументированный reverse. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:03 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopМожно один replace и один rtrim.Икс останется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:05 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Elic, Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:13 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:18 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Elic, Насколько серьезная сама задача, настолько серьезное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:20 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopНасколько серьезная сама задача, настолько серьезное решение.Условия всё равно ж не выполнены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:27 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
ElicУсловия всё равно ж не выполнены. А условия из серии "казнить нельзя помиловать". Значит ли "один replace" replace и только replace или replace может использоваться только один раз. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:32 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
SYЗначит ли "один replace" replace и только replace или replace может использоваться только один раз.Сам об этом задумывался. Но на "решаемость" такое трактование не влияет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:37 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:46 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
orawish Код: plsql 1. Тут не "только один replace". И тоже лишь видимость :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:51 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
ElicСам об этом задумывался. Но на "решаемость" такое трактование не влияет. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Хотя replace тут как попу гармонь. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:52 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
SYХотя replace тут как попу гармонь.Ага. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:54 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
бл*, что за олдфаги с детскими психотравмами дают такие задачи на собесах?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 19:04 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
ok, ok без pad-ов: нажать на пробел и держать достаточно долго Код: plsql 1. 2. 3. 4. 5. 6. 7. а вообще, имхо (про вопрос) - дурь причем, вялая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 19:05 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
with t as ( select 'abcdefxzw4242' str from dual union all select '123x343' str from dual union all select '00f03xe12x' str from dual union all select '0123456789' str from dual ) select regexp_replace (str,'x.*','') from t ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 09:35 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
fortnetregexp_replaceГлаза разул? Lary Denis(не regexp_replace) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 10:20 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Lary Denis, А в чём сложность? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Код: plsql 1. 2. 3. 4. 5. 6. з.ы. где вы такие собеседования находите-то? О_о ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 11:27 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Lary Denis, Один replace, говорите? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 11:45 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Elic, да,да, конечно технически это regexp_replace, но формально.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 11:49 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
envда,да, конечно технически это regexp_replace, но формально....Технически это XQuery. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 11:55 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
env, To: Referent Subj: URGENT REPLACE Replace all strings in document by its substring to first letter x. Very urgent. Big Boss. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 11:59 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Смотря что за вакансияenv, To: Referent Subj: URGENT REPLACE Replace all strings in document by its substring to first letter x. Very urgent. Big Boss. LENGTH можно тоже заменить на 4000, только считаться будет долго. Ну и MOD не придумал как заменить. Код: plsql 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. 43. 44. 45. 46. 47. 48. Я принят? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 12:12 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Elicorawish Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. Тут не "только один replace". И тоже лишь видимость :)можете объяснить, в чём дело? Ни разу не сталкивался, в доке найти не смог - почему результат такой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 13:15 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
andreymx, длинна строки. на 12.1 при varchar2>4к результат будет неожиданный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 13:42 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Vintandreymx, длинна строки. на 12.1 при varchar2>4к результат будет неожиданный.да и на 11 для меня неожиданно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 13:42 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
andreymx, С сишной функции возникает эксепшен и результат возвращается тот, который пришел. Защита от атак переполнения буфера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 13:47 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopandreymx, С сишной функции возникает эксепшен и результат возвращается тот, который пришел после обрезания. Защита от атак переполнения буфера.Fixed. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 13:50 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
andreymxможете объяснить, в чём дело? Ни разу не сталкивался, в доке найти не смог - почему результат такойRTFM Character Functions Returning Character Values (FAQ) :SQL Language ReferenceThe length of the value returned by the function is limited by the maximum length of the data type returned. For functions that return CHAR or VARCHAR2, if the length of the return value exceeds the limit, then Oracle Database truncates it and returns the result without an error message. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 13:54 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
andreymxVintandreymx, длинна строки. на 12.1 при varchar2>4к результат будет неожиданный.да и на 11 для меня неожиданно на границах лимитов всегда можно ждать неожиданностей (за это и опубликовал, если честно ) то ли дело - Код: plsql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 14:06 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Elic, а из 12 с пойдёт? WITH FUNCTION replace_2 (v_str varchar2) RETURN varchar2 IS vv_str varchar2(200); BEGIN vv_str := replace (v_str,'x','%%%'); for i in 1 ..4000 loop for c in 1 ..256 loop vv_str := replace (vv_str,'%%%' || chr(c),'%%%'); end loop; end loop; RETURN replace (vv_str,'%%%',''); END; select replace_2(str) from test_test ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 14:07 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
create table test_test as select 'abcdefxzw4242' str from dual union all select '123x343' str from dual union all select '00f03xe12x' str from dual union all select '00f03xe12x' str from dual union all select '00f03xe12x' str from dual union all select '0123456789' str from dual; WITH FUNCTION replace_2 (v_str varchar2) RETURN varchar2 IS vv_str varchar2(200); BEGIN vv_str := replace (v_str,'x','%%%'); for i in 1 ..4000 loop for c in 1 ..256 loop vv_str := replace (vv_str,'%%%' || chr(c),'%%%'); end loop; end loop; RETURN replace (vv_str,'%%%',''); END; select replace_2(str) from test_test / ошибочно отослалось предыдущее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 14:08 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Хоспади SY же озвучил нормальное решение, полностью удовлетворяющее заданию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 14:10 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, А зачем там вообще replace тогда? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 14:21 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Что значит зачем? Условие такое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 14:27 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровSY же озвучил нормальное решение, полностью удовлетворяющее заданиюКак раз-таки в том "решении" само задание лишнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 14:31 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, Я к тому, что представленное SY решение, никак не использует replace. Это всё равно, что воткнуть просто replace(str,'x','y') и дальше работать с 'y' другими функциями, и говорить, что replace используется. Думаю, что-то подобное должно быть: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 14:33 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
orawish Код: plsql 1. Я ж уже писал. Зависит от гуя. Код: plsql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 14:34 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
ElicВячеслав ЛюбомудровSY же озвучил нормальное решение, полностью удовлетворяющее заданиюКак раз-таки в том "решении" само задание лишнее.Задание есть задание Все остальное -- это уже рассуждения на тему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 14:40 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Я просто удивился, что такое очевидное решение не было озвучено сразу А потом можно и повеселиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 14:42 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Elicorawish Код: plsql 1. Я ж уже писал. Зависит от гуя. Код: plsql 1. 2. 3. 4. 5. 6. ??? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 14:42 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровХоспади SY же озвучил нормальное решение, полностью удовлетворяющее заданию Я правильно понимаю, что моё решение не подходит? WITH FUNCTION replace_2 (v_str varchar2) RETURN varchar2 IS vv_str varchar2(4000) :=v_str; BEGIN for i in 1 ..4000 loop for c in 1 ..256 loop vv_str := replace (vv_str,'x' || chr(c),'x'); end loop; end loop; RETURN replace (vv_str,'x',''); END; select replace_2(str) from test_test ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 14:42 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
orawishandreymxпропущено... да и на 11 для меня неожиданно на границах лимитов всегда можно ждать неожиданностей (за это и опубликовал, если честно ) то ли дело - Код: plsql 1. 2. 3. 4. 5. 6. 7. внезапно Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 14:55 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
fortnetВячеслав ЛюбомудровХоспади SY же озвучил нормальное решение, полностью удовлетворяющее заданию Я правильно понимаю, что моё решение не подходит? WITH FUNCTION replace_2 (v_str varchar2) RETURN varchar2 IS vv_str varchar2(4000) :=v_str; BEGIN for i in 1 ..4000 loop for c in 1 ..256 loop vv_str := replace (vv_str,'x' || chr(c),'x'); end loop; end loop; RETURN replace (vv_str,'x',''); END; select replace_2(str) from test_testНу это ты спрашивай у собеседующих ТС Особенно, если у них, например, 8i ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 14:59 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
orawish???Ты как-то странно цитируешь, но таки да, я согласен, что "дурь причем, вялая" - не видимость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 15:02 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровНу это ты спрашивай у собеседующих ТС Особенно, если у них, например, 8i Ну, это вообще мелочи. Можно всё в блоке выполнить. Главное заложенная идея. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 15:22 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
Да, идея неплоха Сочувствую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 15:29 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopdbms_photoshopandreymx, С сишной функции возникает эксепшен и результат возвращается тот, который пришел после обрезания. Защита от атак переполнения буфера.Fixed.спасибо всем за помощь, удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2017, 20:11 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopdbms_photoshopandreymx, С сишной функции возникает эксепшен и результат возвращается тот, который пришел после обрезания. Защита от атак переполнения буфера.Fixed. На 12.2 с длинными строками - воспроизводится ((( https://livesql.oracle.com/apex/livesql/s/ejqg9bjn7djawpjxixxj26sir ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2017, 10:10 |
|
||
|
Replace
|
|||
|---|---|---|---|
|
#18+
livesqldbms_photoshopпропущено... Fixed. На 12.2 с длинными строками - воспроизводится ((( https://livesql.oracle.com/apex/livesql/s/ejqg9bjn7djawpjxixxj26sir Что понимается под "воспроизводится"? Поведение такое же как и в более старых версиях - х и все после него ушло. Хуже было бы, если б при переполнении появлялись эффекты типа 19045174 (ecc-но с поправкой на специфику вызовов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2017, 14:30 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1886481]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
163ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
97ms |
get tp. blocked users: |
2ms |
| others: | 196ms |
| total: | 503ms |

| 0 / 0 |
