separated regexp_substr leer ejemplos sql oracle oracle10g clob

sql - regexp_substr - Buscar una cadena en particular en la columna de clob de Oracle



oracle regexp_substr comma separated (3)

Utilice dbms_lob.instr y dbms_lob.substr , al igual que las funciones normales InStr y SubstStr.
Mira el ejemplo simple:

SQL> create table t_clob( 2 id number, 3 cl clob 4 ); Tabela zosta│a utworzona. SQL> insert into t_clob values ( 1, '' xxxx abcd xyz qwerty 354657 [] '' ); 1 wiersz zosta│ utworzony. SQL> declare 2 i number; 3 begin 4 for i in 1..400 loop 5 update t_clob set cl = cl || '' xxxx abcd xyz qwerty 354657 [] ''; 6 end loop; 7 update t_clob set cl = cl || '' CALCULATION=[N]NEW.PRODUCT_NO=[T9856] OLD.PRODUCT_NO=[T9852].... -- with other text ''; 8 for i in 1..400 loop 9 update t_clob set cl = cl || '' xxxx abcd xyz qwerty 354657 [] ''; 10 end loop; 11 end; 12 / Procedura PL/SQL zosta│a zako˝czona pomyťlnie. SQL> commit; Zatwierdzanie zosta│o uko˝czone. SQL> select length( cl ) from t_clob; LENGTH(CL) ---------- 25717 SQL> select dbms_lob.instr( cl, ''NEW.PRODUCT_NO=['' ) from t_clob; DBMS_LOB.INSTR(CL,''NEW.PRODUCT_NO=['') ------------------------------------- 12849 SQL> select dbms_lob.substr( cl, 5,dbms_lob.instr( cl, ''NEW.PRODUCT_NO=['' ) + length( ''NEW.PRODUCT_NO=['') ) new_product 2 from t_clob; NEW_PRODUCT -------------------------------------------------------------------------------- T9856

¿Cómo obtener una cadena en particular de una columna clob?

Tengo los datos que se encuentran a continuación, que se almacenan en una columna de clob llamada product_details

CALCULATION=[N]NEW.PRODUCT_NO=[T9856] OLD.PRODUCT_NO=[T9852].... -- with other text

Me gustaría buscar la cadena NEW.PRODUCT_NO de la columna product_details

Lo he intentado como

select * from my_table where dbms_lob.instr(product_details,''NEW.PRODUCT_NO'')>=1

Lo anterior recoge el texto completo de mi tabla.

Cualquier ayuda es altamente apreciable.

Saludos


ok, puede usar substr en correlación con instr para encontrar la posición inicial de su cadena

select dbms_lob.substr( product_details, length(''NEW.PRODUCT_NO''), --amount dbms_lob.instr(product_details,''NEW.PRODUCT_NO'') --offset ) from my_table where dbms_lob.instr(product_details,''NEW.PRODUCT_NO'')>=1;


select * from TABLE_NAME where dbms_lob.instr(COLUMNNAME,''searchtext'') > 0;