|
Перевести long в char
|
|||
---|---|---|---|
#18+
Добрый день! Подскажите пжл как в запросе поле long перевести в char? Примерно такой запрос, где p.high_value тип long select * from table1 t, dba_tab_partitions p where t.col1 = p.high_value ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 12:14 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
Вы точно поискали ответ на форуме или погуглили? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 12:16 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
Master_Detail, да. Нашел функции, которые не смог использовать в запросе ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 12:24 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
TQuestions Добрый день! Подскажите пжл как в запросе поле long перевести в char? Примерно такой запрос, где p.high_value тип long select * from table1 t, dba_tab_partitions p where t.col1 = p.high_value в общем случае - никак сравните лимиты по этим типам и успокойтесь ну еще есть путь - зарыть тот тип long на.., то есть в пропасть для чего и ждет вас to_lob уже лет 20 как ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 13:03 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
думаю, что Server Side Java должна с Long работать нормально. Но сам не проверял. Нужды не было В OCI (C) и Client Java проблем с Long нет. Ф-ции для работы с BLOB совершенно нормально работают и с Long'ами. Подозреваю разный интерфейс Long / Blob был до (возможно включительно) PRO*C Oracle 8.0. Уже в 8i интерфейс унифицировали. AFAIK ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 13:33 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
TQuestions, У Вас лонг в табличке или вью? ps если длина до 32к то через ф-цию пл/скл ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 14:06 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
TQuestions select * from table1 t, dba_tab_partitions p where t.col1 = p.high_value ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 14:19 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
кит северных морей, нужно найти определенные названия партиций при наложении условий на таблицу table1 Т.е. существует очень большая таблица table1. нужно бежать по нужным партициям и дропать их ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 14:50 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
TQuestions Stax, вью жаль, нет ровида надеялся что dba_tab_partitions токо для примера тагда можно определится что для dba_tab_partitions уникальный ключ и по нему в pl/sql сравнивать col1 = p.high_value ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 15:04 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
TQuestions кит северных морей, нужно найти определенные названия партиций при наложении условий на таблицу table1 Т.е. существует очень большая таблица table1. нужно бежать по нужным партициям и дропать их 1) dbms_rowid.rowid_object(table1.rowid) + dba_objects.data_object_id 2) alter table drop partition for ( ... ) с учетом значения all_tab_partitions.interval писать свой собственный парсер имеет смысл тогда, когда вам зачем-то нужно получить метаданные секции, в которой нет ни одной строки. в общем случае там очень много нюансов, которые нужно учесть (например то, что RANGE-секционирование бывает многоколоночным). скорее всего, вам это не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 15:09 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
TQuestions, А конструкция partition for () не подойдёт? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 15:09 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
TQuestions кит северных морей, нужно найти определенные названия партиций при наложении условий на таблицу table1 Т.е. существует очень большая таблица table1. нужно бежать по нужным партициям и дропать их ну и бегите и дропайте .. partition for ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 15:12 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
кит северных морей TQuestions кит северных морей, нужно найти определенные названия партиций при наложении условий на таблицу table1 Т.е. существует очень большая таблица table1. нужно бежать по нужным партициям и дропать их 1) dbms_rowid.rowid_object(table1.rowid) + dba_objects.data_object_id 2) alter table drop partition for ( ... ) с учетом значения all_tab_partitions.interval писать свой собственный парсер имеет смысл тогда, когда вам зачем-то нужно получить метаданные секции, в которой нет ни одной строки. в общем случае там очень много нюансов, которые нужно учесть (например то, что RANGE-секционирование бывает многоколоночным). скорее всего, вам это не нужно. ну и сильные духом могут побаловаться с недокументированной tbl$or$idx$part$num, которая позволяет получить object_id секции по значению partition key. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 15:15 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
К сожалению, у меня? наверное? не такой большой опыт...я не совсем понял ваших решений. Можно на пальцах, как найти названия партиций в таблице table1, например, по условию col2 = 1, если таблица парционирована по col1, а названия партиций лежат в поле long dba_tab_partitions.high_value ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 15:28 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
TQuestions К сожалению, у меня? наверное? не такой большой опыт...я не совсем понял ваших решений. Можно на пальцах, как найти названия партиций в таблице table1, например, по условию col2 = 1, если таблица парционирована по col1, а названия партиций лежат в поле long dba_tab_partitions.high_value вам же всё показали уже нет нужды знать имя секции, если знаете значение из той секции, которую хотите например, удалить (какое? да любое ) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 15:38 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
TQuestions К сожалению, у меня? наверное? не такой большой опыт...я не совсем понял ваших решений. Можно на пальцах, как найти названия партиций в таблице table1, например, по условию col2 = 1, если таблица парционирована по col1, а названия партиций лежат в поле long dba_tab_partitions.high_value Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 15:47 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
orawish нет нужды знать имя секции, если знаете значение из той секции, которую хотите например, удалить (какое? да любое ) авторпо условию col2 = 1, если таблица парционирована по col1, SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 15:51 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
TQuestions например, по условию col2 = 1, если таблица парционирована по col1 Именно для варианта секционирована по одному полю, а фильтр по совершенно другому? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 15:53 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
Хотя можно и выполнить DROP PARTINION FOR всем полученным значениям COL1 с NULL exception handler на ORA-14702 но неэффективно (двойной поиск). SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 16:07 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
SY, не работает( ничего не возвращает. поменял на all_objects или dba_objects, тогда результат есть, но partition_name пусто ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 16:17 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
env, можно подробнее ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 16:18 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
TQuestions, В вашем примере секции нарезаны по col 1 , но условие по col 2 . Это опечатка или действительно надо найти все секции, в которых есть хотя бы одна строка с полем col 2 отвечающим на момент запроса условию фильтра? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 16:24 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
TQuestions, Запрос Соломона работает. Если таблица не в вашей схеме, то вам в all/dba_objects с указанием схемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 16:29 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
env TQuestions, В вашем примере секции нарезаны по col 1 , но условие по col 2 . Это опечатка или действительно надо найти все секции, в которых есть хотя бы одна строка с полем col 2 отвечающим на момент запроса условию фильтра? не опечатка. col2 это дата. нужно взять все запись например от 01.01.2020 и удалить партиции, которые по полю col1 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 16:34 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
env TQuestions, Запрос Соломона работает. Если таблица не в вашей схеме, то вам в all/dba_objects с указанием схемы. select o.subobject_name,o.* from user_objects o where o.subobject_name is not null - этот запрос всего 4 записи возращает у меня ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 16:42 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
TQuestions, А что при этом в user_tab_partitions? TQuestions нужно взять все запись например от 01.01.2020 и удалить партиции, которые по полю col1 т.е. если в секции миллион записей с другими датами и одна от 01.01.2020 - то секцию надо убить полностью? Интересный подход. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 16:53 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
env TQuestions, А что при этом в user_tab_partitions? TQuestions нужно взять все запись например от 01.01.2020 и удалить партиции, которые по полю col1 т.е. если в секции миллион записей с другими датами и одна от 01.01.2020 - то секцию надо убить полностью? Интересный подход. А что при этом в user_tab_partitions? - одна запись на одну дату более одной партиции ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 16:58 |
|
Перевести long в char
|
|||
---|---|---|---|
#18+
TQuestions SY, не работает( ничего не возвращает. поменял на all_objects или dba_objects, тогда результат есть, но partition_name пусто Код: 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. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63.
Но все это не имеет большого смысла ибо если мы нашли что NAME = '@' в партиции SYS_P105037 и дропнули SYS_P105037 то кроме NAME = '@' мы уничтожили строки с ID = 6,7. Вряд ли это то что требуется. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 17:48 |
|
|
start [/forum/topic.php?all=1&fid=52&tid=1880854]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 298ms |
total: | 449ms |
0 / 0 |