oracle如何输出结果 oracle输出函数

oracle存储过程如何输出结果集

过程返回记录集:

成都创新互联为您提适合企业的网站设计 让您的网站在搜索引擎具有高度排名,让您的网站具备超强的网络竞争力!结合企业自身,进行网站设计及把握,最后结合企业文化和具体宗旨等,才能创作出一份性化解决方案。从网站策划到成都网站制作、网站建设, 我们的网页设计师为您提供的解决方案。

CREATE OR REPLACE PACKAGE pkg_test

AS

TYPE myrctype IS REF CURSOR;

PROCEDURE get (p_id NUMBER, p_rc OUT myrctype);

END pkg_test;

/

CREATE OR REPLACE PACKAGE BODY pkg_test

AS

PROCEDURE get (p_id NUMBER, p_rc OUT myrctype)

IS

sqlstr VARCHAR2 (500);

BEGIN

IF p_id = 0 THEN

OPEN p_rc FOR

SELECT ID, NAME, sex, address, postcode, birthday

FROM student;

ELSE

sqlstr :=

'select id,name,sex,address,postcode,birthday

from student where id=:w_id';

OPEN p_rc FOR sqlstr USING p_id;

END IF;

END get;

END pkg_test;

/

函数返回记录集:

建立带ref cursor定义的包和包体及函数:

CREATE OR REPLACE

package pkg_test as

/* 定义ref cursor类型

不加return类型,为弱类型,允许动态sql查询,

否则为强类型,无法使用动态sql查询;

*/

type myrctype is ref cursor;

--函数申明

function get(intID number) return myrctype;

end pkg_test;

/

CREATE OR REPLACE

package body pkg_test as

--函数体

function get(intID number) return myrctype is

rc myrctype; --定义ref cursor变量

sqlstr varchar2(500);

begin

if intID=0 then

--静态测试,直接用select语句直接返回结果

open rc for select id,name,sex,address,postcode,birthday from student;

else

--动态sql赋值,用:w_id来申明该变量从外部获得

sqlstr := 'select id,name,sex,address,postcode,birthday from student where id=:w_id';

--动态测试,用sqlstr字符串返回结果,用using关键词传递参数

open rc for sqlstr using intid;

end if;

return rc;

end get;

end pkg_test;

/

在oracle中如何如何显示输出

首先在sqlplus中set serverout on 以打开显示至于输出,可以用dbms_output若在sqlplus中还可以用print

oracle存储过程如何输出信息

可用DBMS_OUTPUT.PUT_LINE()对存储过程的进行输出。

编写存储过程:

create or replace procedure test_pro(in_num number)

as

M number;

begin

M := in_num;

if 0 M then

dbms_output.put_line('输出SQL语句1');

elsif M 3 then

dbms_output.put_line('输出SQL语句2');

else

dbms_output.put_line('nothing');

end if;

end;

扩展资料;

存储在数据库的数据字典中,存储在当前的应用中安全性由数据库提供安全保证,必须通过授权才能使用存储子程序,安全性靠应用程序来保证,如果能执行应用程序,就能执行该子程序。模式描述IN参数用来从调用环境中向存储过程传递值,不能给IN参数赋值,给此参数传递的值可以是常量、有值的变量、表达式等。

参考资料来源:百度百科-Oracle存储过程

oracle中如何把查询结果导出到excel里面

oracle导出excel

一、oracle导出excel

方法一:最简单的方法---用工具plsql dev

执行File =newReport Window 。在sql标签中写入需要的sql,点击执行或按快捷键F8,会先吃出查询结果。在右侧工具栏,可以选择按钮另存为html、copy as html、exportresults,其中export results按钮中就可以导出excel文件、csv文件、tsv文件、xml文件。

方法二:最专业的方法---用原始工具sqlplus

原文参见:

我做了一点修改,如下所示:

1.main.sql

用以设置环境,调用具体功能脚本

2.功能脚本-get_tables.sql

为实现具体功能之脚本

通过这样两个脚本可以避免spool中的冗余信息,参考:

如何去除SQLPLUS中SPOOL的冗余信息

示例如下:

1.main.sql脚本:

[oracle@jumper utl_file]$ more main.sql

set linesize 200

set term off verify off feedback off pagesize 999

set markup html on entmap ON spool on preformat off

spool d:/tables.xls

@d:/get_tables.sql

spool off

exit

2.get_tables.sql脚本:

[oracle@jumper utl_file]$ more get_tables.sql

select owner,table_name,tablespace_name,blocks,last_analyzed

from all_tables order by 1,2;

3.执行并获得输出:

[oracle@jumper utl_file]$ sqlplus "/ as sysdba" @d:/main.sql

SQL*Plus: Release 9.2.0.4.0 - Production on Mon Apr 25 10:30:11 2005

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Connected to:

Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production

With the Partitioning option

JServer Release 9.2.0.4.0 - Production

Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production

With the Partitioning option

JServer Release 9.2.0.4.0 - Production

[oracle@jumper utl_file]$ ls -l tables.xls

-rw-r--r-- 1 oracle dba 69539 Apr 25 10:30 tables.xls

[oracle@jumper utl_file]$

此处输出为xls文件,通过下图我们可以看到输出效果:

把main.sql脚本中的,spooltables.xls更改为spool tables.htm,我们可以获得htm格式输出,效果如下图:

方法三:最悲剧的方法,之所以称为悲剧,是因为这个方法其实很简单,但是你可能没有注意。

打开plsql dev工具,执行file=newsql window ,输入sql,点击工具栏“执行”按钮或按快捷键F8。会显示出结果集。

点击结果集的左上方,可全部选中结果集,然后右键=copy,直接粘贴到excel文件中就可以了!

方法四:最努力的方法,这种方法稍微有点麻烦,但不用写脚本,也不用psql dev工具,只用sql plus就可以了。

在sqlplus中,执行想要的sql,把结果集copy到文本文件中(或者直接用spool命令直接输入到文本文件中),把不必要的字符、空格替换成逗号",",然后另存为csv文件,最后在用excel另存为exl文件就可以了。

二、把excel文件数据导入到oracle的某个表中。

方法一:最省时的方法,需要借助plsql dev工具。

a.复制整个工作簿中的数据到某个表中。

点击excel工作区左上角,全部选中数据,ctrl+c 复制整个工作簿中的数据。在plsql dev中,编辑表格表的数据,点击数据展示区左上角,直接粘贴就可以了(注意excel的第一列应该保持为空,如果不为空可以增加一空列,不然你复制的数据就会少一列的)!如下图

所示:

b.复制某列的数据。

这个很容易,选中excel某一列的数据,复制,选中oracle某个表的某一列,直接粘贴就可以了。plsql dev和excel中的列可以相互复制。

方法二:最专业的方法,用sql loader。

原文地址:

1.录入excel 测试表格,test.xls。

2.另存为.csv格式

3.创建sql*loader控制文件test.ctl,内容如下:

Load data

Infile 'c:/test.csv'

insert Into table test Fields terminated by','(column1,column2,column3,column4,column5)

需要将数据文件拷贝到对应位置

4.到数据库中建立对应的测试表test

create table test (

column1 Varchar2(10),

column2 Varchar2(10),

column3 Varchar2(10),

column4 Varchar2(10),

column5 Varchar2(10)

)

5.执行导入命令

Sqlldr userid = system/manager control='C:/test.ctl'

导入成功!

附:

Sqlldr的函数关键字说明:

Userid --oracle用户名 userid = username/password

Control --控制文件名称 control =‘e:/insert.ctl’

Log –-日志文件名称 log = ‘e:/insert.log’

Bad --损坏文件名称

Data --data file name

Discard --discard file name

Discardmax --number of discards to allow(默认全部)

Skip --导入时跳过的记录行数(默认0)

Load --导入时导入的记录行数(默认全部)

Errors --允许错误的记录行数(默认50)

ctl文件内容说明:

Load data

Infile ‘e:/test.csv’ --数据源文件名称

Append|insert|replace --append在表后追加,insert插入空表,replace替代原有内容

Into table test --要导入的数据库表名称

[when id = id_memo] --过滤条件

Fields terminated by X’09’ --字段分隔符

(id,name,telphone) --字段名称列表

方法三:最悲剧的方法,创建oracle外部表,为了把excel中的数据导入到数据中而去建立外部表,大题小做了!

将excel文件另存为csv文件a.csv,然后创建一个外部表t,数据指向a.csv。然后根据外部表创建一个普通的表:

create table a asselect * from t ,这样就可以把最初的excel文件导入到oracle中的表了。

方法四:最古典的方法,拼接sql语句。如果你excel熟的话,这种方法也不错。

在excel中,把数据拼接成如下sql语句:

insert into empvalues('1','2','3');

insert into empvalues('4','5','6');

insert into empvalues('7','8','9');

copy 出以上sql,执行就可以了!!

oracle sql developer如何导出数据

打开oracle sql developer工具,连接上数据库服务,然后打开表列表,选择需要导出的表,然后右击选择导出

请点击输入图片描述

在导出向导页面,如图可以看到,是否需要导出DLL,是否美化显示等选项,可以根据需要进行勾选。最下面选择编码和导出的文件目录

请点击输入图片描述

这一步,需要选择导出的列字段,可以选择其中部分字段,默认是全部列勾选的,如果不需要修改可以直接点击下一步

请点击输入图片描述

这一步需要指定过滤的where条件,如图所示,在where字句中输入条件,输入完条件之后可以点击刷新按钮查看过滤效果

请点击输入图片描述

到这一步是导出概要,可以查看导出有关的信息等,没有问题的话,可以直接点击完成,即可开始导出数据了。

请点击输入图片描述

如果表里的数据量比较大,在导出的时候需要等待一段时间,可以选择后台运行,这样可以同时做其它的操作。导出程序在后台导出,完成之后会有提醒。

请点击输入图片描述

导出完成之后,打开刚刚设置的导出文件目录,查看导出的文件和数据是否正确。

请点击输入图片描述

ORACLE中如何用DBMS_OUTPUT包输出表的所有数据?

DBMS_OUTPU.PUT_LINE是PL/SQL语言的输出语句。如果要想输出表中所有数据,要通过游标循环读逐条读出和输出。下面是一个简单例子:\x0d\x0aBEGIN\x0d\x0aFORrecIN(SELECT*FROMemp)LOOP\x0d\x0adbms_output.put_line(rec.empno||rec.ename);\x0d\x0aENDLOOP;\x0d\x0aEND;


当前文章:oracle如何输出结果 oracle输出函数
URL分享:http://myzitong.com/article/hgdjej.html