Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Преобразовать строку выборку строк  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 25
Имеется строка, извлеченная из JSON ответа, в котором содержится список пользователей
вида

"user1", "user2", "user3", "user4", "user5", "user6"

Нужно преобразовать ее так, чтобы каждый пользователь был записью SQL запросе выборки .


1 "user1"
2 "user1"
3 "user1"
4 "user1"
5 "user1"


Как это сделать?
15 ноя 20, 21:16    [22232477]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать строку выборку строк  [new]
Elic
Member

Откуда:
Сообщений: 29991
WНаталья
Как это сделать?
Ты уверена, что нужно именно оболгать данные?
15 ноя 20, 21:24    [22232490]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать строку выборку строк  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7136
WНаталья,

Если тебе не нужны 5 user1 :)
with t1(s) as (select '"user1", "user2", "user3", "user4", "user5", "user6"' from dual)
, t2(s0,lvl1,lvl2,pos1,pos2) as (
select
s
,((level-1)*2)+1
,((level-1)*2)+2
,instr(s,'"',1,((level-1)*2)+1)
,instr(s,'"',1,((level-1)*2)+2)
from t1
connect by level <= 6
)
select * from t2;

S0                                                         LVL1       LVL2       POS1       POS2
---------------------------------------------------- ---------- ---------- ---------- ----------
"user1", "user2", "user3", "user4", "user5", "user6"          1          2          1          7
"user1", "user2", "user3", "user4", "user5", "user6"          3          4         10         16
"user1", "user2", "user3", "user4", "user5", "user6"          5          6         19         25
"user1", "user2", "user3", "user4", "user5", "user6"          7          8         28         34
"user1", "user2", "user3", "user4", "user5", "user6"          9         10         37         43
"user1", "user2", "user3", "user4", "user5", "user6"         11         12         46         52


Надеюсь, substr напишешь сама
15 ноя 20, 23:57    [22232545]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать строку выборку строк  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 2798
WНаталья,
SQL> ed
Wrote file afiedt.buf

  1* select * from xmltable('"user1", "user2", "user3", "user4", "user5", "user6"') x
SQL> /

COLUMN_VALUE
--------------------------------------------------------------------------------
user1
user2
user3
user4
user5
user6

6 rows selected.



.....
stax
16 ноя 20, 10:51    [22232683]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать строку выборку строк  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 25
Stax,

супер.
А как теперь перевести XMLTYPE в VARCHAR2?
17 ноя 20, 11:19    [22233557]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать строку выборку строк  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 2798
WНаталья
Stax,

супер.
А как теперь перевести XMLTYPE в VARCHAR2?


откуда XMLTYPE, если "Имеется строка, ..."

ps
разобрать строку можно по разному напр 22232545
токо я б искал запятую, а не кавычку

.....
stax
17 ноя 20, 11:31    [22233568]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать строку выборку строк  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7136
WНаталья,

Oracle SQL Reference
CAST
17 ноя 20, 11:40    [22233584]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать строку выборку строк  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 25
Stax,
потому, что (см картинку)

далее выборку пользователей нужно использовать в другом запросе

К сообщению приложен файл. Размер - 19Kb
17 ноя 20, 12:08    [22233609]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать строку выборку строк  [new]
exciter
Member

Откуда:
Сообщений: 24
WНаталья,

select x.column_value.getstringval() strval from xmltable('"user1", "user2", "user3", "user4", "user5", "user6"') x
17 ноя 20, 14:26    [22233760]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить