oracle查询怎么转吗 oracle转mysql

如何将Oracle查询结果转成XML文件

在oracle中提供了许多内置的程序包,它们用于扩展数据库的功能。在开发应用程序时,可以利用这些程序包。数据库用户sys拥有oracle提供的所有程序包。他们被定义为共有同义词,并将执行权限授予了public用户组,任何用户都可以访问它们。其中DBMS_XMLQUERY包用于将查询结果转换为XML格式,DBMS_LOB程序包包含雨处理大型对象的过程和函数。下面我们看一下DBMS_XMLQUERY和DBMS_LOB的用法:

专注于为中小企业提供成都做网站、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业遂川免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

SQL DECLARE

result CLOB;

xmlstr VARCHAR2(32767);

line VARCHAR2(2000);

line_no INTEGER :=1;

BEGIN

result :=DBMS_XMLQUERY.getXml('select empno,empname from employee');

xmlstr :=DBMS_LOB.SUBSTR(result,32767);

LOOP

EXIT WHEN xmlstr IS NULL;

line :=SUBSTR(xmlstr,1,INSTR(xmlstr,CHR(10)-1));

DBMS_OUTPUT.PUT_LINE(line_no || ':' || line);

xmlstr :=SUBSTR(xmlstr,INSTR(xmlstr,CHR(10)+1));

line_no :=line_no + 1;

END LOOP;

END;

在上面的例子中我们声明了一个CLOB数据类型的result变量,以及VARCHAR2类型的xmlstr和line两个变量。其中,getXml函数用于将查询结果转换为XML格式,SUBSTR函数检索子字符串,32767值指定要从CLOB数据类型读取的最大字节数。检索到的字符串存储xmlstr变量中。LOOP块循环执行,每次从xmlstr中读取一行。INSTR函数返回一个字符串在另一个字符串首次出现的位置。在此,该函数返回换行符在字符串中的位置,直到遇到下一行。

大家觉得例子的结果能不能读出我们预期的结果呢?试试就知道了!!!

结果如下:

?xml version='1.0'?

ROWSET

ROW num="1"

EMPNOE001/EMPNO

EMPNAMEJane/EMPNAME

/ROW

ROW num="2"

EMPNOE002/EMPNO

EMPNAMEJohn/EMPNAME

/ROW

ROW num="3"

EMPNOE003/EMPNO

EMPNAMEJoe/EMPNAME

/ROW

/ROWSET

oracle表的查询格式转换

select 姓名,sum(decode(考试时间,'2014/4',数学成绩,0)) as 201404数学成绩,

sum(decode(考试时间,'2014/4',英语成绩,0)) as 201404英语成绩,

sum(decode(考试时间,'2014/5,数学成绩,0)) as 201405数学成绩,

sum(decode(考试时间,'2014/5,英语成绩,0)) as 201405英语成绩,

sum(decode(考试时间,'2014/6,数学成绩,0)) as 201406数学成绩,

sum(decode(考试时间,'2014/6,英语成绩,0)) as 201406英语成绩

group by 姓名

通常这种问题都是用分组函数和decode来解决的,网上还有不少这方面的例子,你可以查一下。

oracle 查询结果内容转换

创建测试表:

create table test

(score varchar2(100));

insert into test values ('50,60,70');

insert into test values ('60,70,80');

commit;

执行:

select wm_concat(case

when t.score  60 then

'不及格'

else

'及格'

end) score

from (select a.rowid rd, REGEXP_SUBSTR(a.score, '[^,]+', 1, l) score

from test a, (SELECT LEVEL l FROM DUAL CONNECT BY LEVEL = 100) b

WHERE l = LENGTH(a.score) - LENGTH(REPLACE(score, ',')) + 1) t

group by t.rd

结果:

数据库Oracle 在查询的时候将LONG类型转换成VARCHAR2

Oracle中的LONG类型有两种:

LONG文本类型,能存储2GB的文本。与VARCHAR2或CHAR类型一样,存储在LONG类型中的文本要进行字符集转换。

LONG RAW类型,能存储2GB的原始二进制数据(不用进行字符集转换的数据)。

在此并不解释如何使用LONG类型,而是会解释为什么你不希望在应用中使用LONG(或LONG RAW)类型。首先要注意的是,Oracle文档在如何处理LONG类型方面描述得很明确。Oracle SQL Reference手册指出:

不要创建带LONG列的表,而应该使用LOB列(CLOB、NCLOB、BLOB)。支持LONG列只是为了保证向后兼容性。

没有内置的函数处理,得自己写处理函数,可以参考:网页链接

oracle数据库,查询到的结果怎样修改?

在把Oracle查询结果转换为SQL Server的时候要特别当心一些不容易注意到的问题。

我们知道,T-SQL是SQL Server的语言引擎,而Oracle的语言引擎却是PLSQL.这两种查询语言都对

ANSI SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何

对这些扩展进行转化以用在SQL Server环境下。

列的选择

用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL Server的要求是一样的。 SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表DUAL.DUAL表由

Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2

(1)类型,有一行值X.

从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。

Oracle下的DUAL查询如下所示:

SELECT

‘x’ FROM dual

而对等的SQL Server查询则是下面这个样子:

SELECT ‘x’

连接

Oracle用|| 符号作为连接符,而SQL Server的连接符是加号:+ .

Oracle查询如下所示:

Select ‘Name’ || ‘Last Name’

From tableName

对应的SQL Server查询如下所示:

Select ‘Name’ + ‘Last Name’

数字取舍

Oracle数据库内有一个TRUNC函数,该函数返回m位十进制数的n位;如果省略m则n就是0位。m的值可以为负,表示截去小数点左边m位数字。

在SQL Server下可以用Round或者Floor.

以下是Oracle查询:

SELECT

TRUNC(15.79,1) "Truncate" FROM DUAL;

下面是同类查询的SQL Server版本:

SELECT ROUND(15.79, 0) rounded ,

ROUND(15.79, 0,1) truncated

SELECT FLOOR(ROUND(15.79, 0)),

FLOOR(ROUND(15.79, 0,1) )

在把Oracle查询转换为SQL Server的时候要特别当心一些不容易注意到的问题。我们知道,T-SQL是SQL Server的语言引擎,而Oracle的语言引擎却是PLSQL.这两种查询语言都对

ANSI SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何

对这些扩展进行转化以用在SQL Server环境下。

列的选择

用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL Server的要求是一样的。 SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表DUAL.DUAL表由

Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2

(1)类型,有一行值X.

从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。

Oracle下的DUAL查询如下所示:

SELECT

‘x’ FROM dual

而对等的SQL Server查询则是下面这个样子:

SELECT ‘x’

连接

Oracle用|| 符号作为连接符,而SQL Server的连接符是加号:+ .

Oracle查询如下所示:

Select ‘Name’ || ‘Last Name’

From tableName

对应的SQL Server查询如下所示:

Select ‘Name’ + ‘Last Name’

oracle数据库查询sql的结果,如何快速转换为access数据库?

用Toad for oracle,在查询结果的地方点右键,选择“save as”,选择保存类型为access就可以了。


文章名称:oracle查询怎么转吗 oracle转mysql
路径分享:http://scyanting.com/article/hhiihj.html