xmltype資料類演練及讀取效率測算
xmltype 預定義的物件型別
--1.演練部分
--用於儲存和操作xml資料
--建立一個可以裝xml的表
create table fallsxml(
fall_id number,
fall_xml xmltype
);
--使用靜態方法CreateXML 插入第1條xml記錄
INSERT INTO fallsxml
VALUES
(1,
xmltype.CreateXML('
[url][/url]
--插入第2條xml記錄
INSERT INTO fallsxml
VALUES
(2,
XMLType.CreateXML('
[url][/url]
--插入第3條xml記錄
INSERT INTO fallsxml
VALUES
(3,
XMLType.CreateXML('
--檢視插入的記錄,使用existsNode()方法檢索節點
select t.*,rowid from fallsxml t;
select fall_id from fallsxml f where f.fall_xml.existsNode('/fall/url')>0;--存在fall/url
select fall_id from fallsxml where existsNode(fall_xml,'/fall/url')>0;--fall列中存在fall下面有url的
--抽取xml的文字並輸出(獲得指定字元,採用靜態方法extract )
--在plqldev中執行報錯(去掉2個demo_block即可),在sqlplus中正確
<
declare
v_xml xmltype;
url varchar2(500);
begin
--查詢xml記錄into給變數v_xml
select t.fall_xml into demo_block.v_xml from fallsxml t where t.fall_id = 1;
--從取到的xml記錄中,抽取extract 節點值
url := v_xml.extract('/fall/url/text()').getStringVal();
dbms_output.put_line(url);
end;
/
--輸出 [url][/url]
注:v_xml.extract('/fall/url/text( )').getStringVal 呼叫靜態方法extract提取相應資料,也就是提供根目錄下的url子目錄下的文字,text()指url的體部文字。geteStringVal是文字的值。
select Upper(Xmltype.getStringVal(xmltype.extract(fall_xml,'/fall/url/text()'))) from fallsxml
where existsNode(fall_xml,'/fall/url')>0;
上面的是將查詢出來的html地址變為大寫
2.效率測算部分
--xmltype()執行效率測算
select f_gettime(fall_xml, '/fall/url', 10000)
from fallsxml
where rownum = 1;
--返回值:
+000000000 00:00:00.485000000||
[url][/url]
create or replace function f_gettime(sb in xmltype,path in varchar2,a in number:=10000) return varchar2 is
cc xmltype;
v_time timestamp;
begin
v_time:=current_timestamp;
for i in 1..a loop
cc:=sb.extract(path);
end loop;
return to_char(current_timestamp-v_time) || '||' ||cc.getStringVal();
end f_gettime;
select extract(xmltype(ts_clob),'/ROWDATA/ROW/ID2/text()') from ts_clob where rownum=1;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29267792/viewspace-1702052/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql取隨機資料效率測試(400W條中讀取100條)MySql隨機
- 巧用xmltype解析clob資料XML
- HashMap,LinkedHashMap,TreeMap讀取大量資料效率的比較HashMap
- Modbus通用資料讀取工具設計及使用
- 讀取CSV資料
- excel 資料讀取Excel
- 資料視覺化詳解+程式碼演練視覺化
- JSON劫持漏洞攻防原理及演練JSON
- 從資料庫Mysql讀取資料轉化為xml文件的Java類資料庫MySqlXMLJava
- 如何提升scrapy爬取資料的效率
- 亮資料:高效率資料採集,加速大模型訓練!大模型
- Spark讀取MySQL資料SparkMySql
- 讀取JSON資料JSON
- PHPExcel讀取excel資料PHPExcel
- 利用反射讀取資料庫資料反射資料庫
- sqlserver讀取oracle資料庫資料SQLServerOracle資料庫
- 使用Pytorch訓練分類器詳解(附python演練)PyTorchPython
- redis演練Redis
- 讀取ViewBag匿名類View
- Java讀取資料夾大小的6種方法及程式碼Java
- eazyexcel 讀取excel資料插入資料庫Excel資料庫
- spark讀取hbase的資料Spark
- POI 分批讀取Excel資料Excel
- Jsp讀取MySQL資料JSMySql
- Spark讀取elasticsearch資料指南SparkElasticsearch
- python讀取MySQL資料PythonMySql
- TensorFlow讀取CSV資料
- 建造者模式讀取資料模式
- 讀取資料夾檔案
- 圖解B樹及C#實現(2)資料的讀取及遍歷圖解C#
- 十大滲透測試演練系統
- SAP ABAP SM50的另類用途 - ABAP工作程式對資料庫表讀取操作的檢測資料庫
- Known框架實戰演練——進銷存資料結構框架資料結構
- Known框架實戰演練——進銷存基礎資料框架
- 【python資料探勘課程】二十.KNN最近鄰分類演算法分析詳解及平衡秤TXT資料集讀取PythonKNN演算法
- 如何解析 Ethereum 資料:讀取 LevelDB 資料
- 什麼是攻防演練?攻防演練包含哪些專案?
- 解析Pyspark如何讀取parquet資料Spark