sql – 在Oracle clob列中搜索特定的字符串
发布时间:2020-12-12 08:40:45 所属栏目:MsSql教程 来源:网络整理
导读:如何从clob列中获取一个特定的字符串? 我有如下数据,它存储在名为product_details的clob列中 CALCULATION=[N]NEW.PRODUCT_NO=[T9856] OLD.PRODUCT_NO=[T9852].... -- with other text 我想从列product_details搜索字符串NEW.PRODUCT_NO 我试过了 select * fr
如何从clob列中获取一个特定的字符串?
我有如下数据,它存储在名为product_details的clob列中 CALCULATION=[N]NEW.PRODUCT_NO=[T9856] OLD.PRODUCT_NO=[T9852].... -- with other text 我想从列product_details搜索字符串NEW.PRODUCT_NO 我试过了 select * from my_table where dbms_lob.instr(product_details,'NEW.PRODUCT_NO')>=1 以上从表中获取全文. 任何帮助都是非常可观的. 问候 解决方法使用 dbms_lob.instr和 dbms_lob.substr,就像常规的InStr和SubstStr功能一样.看简单的例子: 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容