增强PL/SQL中查询CLOB或者LONG类型的可读性
2014-03-04 22:36
260 查看
一般CLOG或者LONG类型的字段,查询出来是如下所示,影响可读性:
而且我们无法在子查询中查询LONG/CLOB字段:
我们可以从下面的连接中找到方法:
http://www.oracle-developer.net/display.php?id=430
There are several workarounds we can use to solve our sample problem. We will examine each of the following in turn:
TO_LOB;
PL/SQL;
DBMS_XMLGEN;
Dictionary Long Application (oracle-developer.net utility).
个人偏向于第三种,先转换为XML格式的数据,再使用Oracle中处理XML相关的函数进行查询,示例如下:
WITH xml AS
(SELECT dbms_xmlgen.getxmltype('SELECT *
FROM user_tab_subpartitions a
WHERE a.table_name = ''CSS_CUST_ACCT_ITEM''') AS xml
FROM dual)
SELECT *
FROM (SELECT EXTRACTVALUE(xs.object_value, '/ROW/TABLE_NAME') AS table_name,
EXTRACTVALUE(xs.object_value, '/ROW/TABLESPACE_NAME') AS tablespace_name,
EXTRACTVALUE(xs.object_value, '/ROW/HIGH_VALUE') AS high_value
FROM xml x, TABLE(xmlsequence(extract(x.xml, '/ROWSET/ROW'))) xs) v
WHERE v.high_value = 512;
这样我们不仅增强了CLOB/LONG类型字段的可读性,同时还能对数据进行子查询。
XMLSEQUENCE相关的使用说明如下:
http://www.stanford.edu/dept/itss/docs/oracle/10gR2/server.102/b14200/functions226.htm
就是说XMLSEQUENCE将XML文档中的各个节点的多个元素分为只存放单个元素的数组
the
of the subquery
最终是以表的方式展现出来,并实现能够在from子句中使用子查询。
而且我们无法在子查询中查询LONG/CLOB字段:
我们可以从下面的连接中找到方法:
http://www.oracle-developer.net/display.php?id=430
There are several workarounds we can use to solve our sample problem. We will examine each of the following in turn:
TO_LOB;
PL/SQL;
DBMS_XMLGEN;
Dictionary Long Application (oracle-developer.net utility).
个人偏向于第三种,先转换为XML格式的数据,再使用Oracle中处理XML相关的函数进行查询,示例如下:
WITH xml AS
(SELECT dbms_xmlgen.getxmltype('SELECT *
FROM user_tab_subpartitions a
WHERE a.table_name = ''CSS_CUST_ACCT_ITEM''') AS xml
FROM dual)
SELECT *
FROM (SELECT EXTRACTVALUE(xs.object_value, '/ROW/TABLE_NAME') AS table_name,
EXTRACTVALUE(xs.object_value, '/ROW/TABLESPACE_NAME') AS tablespace_name,
EXTRACTVALUE(xs.object_value, '/ROW/HIGH_VALUE') AS high_value
FROM xml x, TABLE(xmlsequence(extract(x.xml, '/ROWSET/ROW'))) xs) v
WHERE v.high_value = 512;
这样我们不仅增强了CLOB/LONG类型字段的可读性,同时还能对数据进行子查询。
XMLSEQUENCE相关的使用说明如下:
http://www.stanford.edu/dept/itss/docs/oracle/10gR2/server.102/b14200/functions226.htm
XMLSequencedivides up an XML document with multiple elements into
VARRAYsingle-element documents
就是说XMLSEQUENCE将XML文档中的各个节点的多个元素分为只存放单个元素的数组
the
TABLEkeyword instructs Oracle Database to consider the collection a table value that can be used in the
FROMclause
of the subquery
最终是以表的方式展现出来,并实现能够在from子句中使用子查询。
相关文章推荐
- oracle 的sql,查询时间为某年某月某日某时某分某秒等的记录,data或者TIMESTAMP(6)类型的字段
- 转----Oracle中Clob类型处理解析(NHibernate long值绑定long列,或者是直接oraclecommand的插入的时候报错都可以用,ORA-01461:仅可以插入LONG列的LONG值赋值)
- Oracle clob类型的字段作为查询条件的sql语句写法
- [技巧]PL/SQL Developer 打开clob类型提示:无效句柄
- Oracle中Clob类型处理解析(NHibernate long值绑定long列,或者是直接oraclecommand的插入的时候报错都能用,ORA-01461:仅可以插入LONG列的LONG值赋值
- oracle 定长字段查询问题 ,ibatis 与pl/sql查询的char类型字段查询不同
- 关于PL/SQL中复杂的存储过程或者是函数等的查询==避免在PL/SQL当中写SQL语句查询存储过程或者是函数
- oracle 定长字段查询问题 ,ibatis 与pl/sql查询的char类型字段查询不同
- PL/SQL 中查询CLOB字段内容
- oracle 定长字段查询问题 ,ibatis 与pl/sql查询的char类型字段查询不同
- PL/SQL 中查询CLOB字段内容
- Ask Tom之中英文对照20051228——PL/SQL函数返回CLOB类型值
- 【初识Oracle】⑥PL/SQL基础基本程序块以及存储类型
- hibernate HQL查询以及原生SQL查询参数类型的区别
- PL/SQL复合数据类型—record,集合(索引表,嵌套表,VARRAY)—之四
- 关于SQL查询的字符串类型字段的排序问题
- PL/SQL Boolean类型
- 关于SQL时间类型的模糊查询
- c#对PL/SQL查询结果列复制的结果生成指定格式
- 【Oracle】PL/SQL——基本语法,记录类型和控制流程