SQL wybrać specyficzne (4) część danych kolumny BLOB oddzielone określonego wzoru

głosy
1

Jest to kolumna BLOB, który zawiera dane jak:

{{Property1 {property1_string}} {Property2 {property2_string}} {Property3 {property3_string}} {Property4 {property4_string}} {Property5 {property5_string}}}

I wybrać powyższą kolumnę do wyświetlania danych BLOB, co następuje:

utl_raw.cast_to_varchar2(dbms_lob.substr(blobColumn))

Potrzebuję, aby wyświetlić tylko dane 4. Własności kolumny BLOB, więc następujący:
{{property4_string Property4}}

Tak, potrzebuję pomocy, aby stworzyć niezbędne wybierz do tego celu.

Dziękuję Ci.

Utwórz 18/12/2018 o 11:05
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
0

Użytkownik może korzystać REGEXP_SUBSTR.

select REGEXP_SUBSTR(s,'[^{} ]+', 1, 2 * :n) FROM t;

Gdzie n jest n-ta właściwość ciąg chcesz wyodrębnić z Twoich danych.

n = 1 gives property1_string
n = 2 gives property2_string 
..
and so on

Należy pamiętać, że spowinno być wyjścieutl_raw.cast_to_varchar2

Próbny

Odpowiedział 18/12/2018 o 14:07
źródło użytkownik

głosy
0

to będzie działać:

select substr(cast(blobfieldname as 
varchar2(2000)),instr(cast(blobfieldname as 
varchar2(2000)),'{',1,8)),instr(cast(blobfieldname as 
varchar2(2000)),'}',1,8))- 
instr(cast(blobfieldname as varchar2(2000)),'{',1,8))) from tablename;
Odpowiedział 18/12/2018 o 11:14
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more