oracle中如何输出行 oracle输出字符串

如何将oracle中其中一张表的数据行导出到Excel中无法直接保存到excel中,但是可以保存到csv文件,同样是excel的格式 , 方法如下:
譬如要把文件生成在d盘下的test目录下:
1,在d盘根目录下新建test目录
2,sqlplus以system用sysdba登录
3,create or replace directory TMP as ’d:\test’;
4,grant read on directory TMP to user;
5,alter system set utl_file_dir='d:\test' scope=spfile;
然后建立存储过程,表是随便建了一个,最后的文件名按要求需要按照当前日期的前一天生成,所以后边文件名的地方write_file_name处就按照要求来了
create or replace PROCEDURE SP_OUTPUT
(
on_flagOUTNUMBER,
out_reasonOUTVARCHAR2)
is
v_codenumber;
v_textvarchar2(255);
file_handle utl_file.file_type;
Write_content VARCHAR2(1024);
Write_file_name VARCHAR2(50);
v_aaa varchar2(5);
v_bbb varchar2(5);
cursor cur_sp_out
is
select aaa,bbb
from aaa;
begin
open cur_sp_out;
loop
fetch cur_sp_out intov_aaa,v_bbb;
exit when cur_sp_out%notfound;
write_file_name := to_char(SYSDATE,'YYYYMMDD')||'.xls';
file_handle := utl_file.fopen('TMP',write_file_name,'a');
write_content := v_aaa||' '||v_bbb;
--write file
IF utl_file.is_open(file_handle) THEN
utl_file.put_line(file_handle,write_content);
END IF;
--close file
utl_file.fclose(file_handle);
end loop;
close cur_sp_out;
v_code := 0;
v_text := '完成';
exception
when others then
on_flag := SQLCODE;
out_reason := SQLERRM;
begin
IF utl_file.is_open(file_handle) THEN
utl_file.fclose(file_handle);
end IF;
end;
rollback;
end;
这样基本就完成了 , 但是建立完毕后需要重启数据库,否则文件写不进指定的目录下
需要注意的是: write_content := v_aaa||' '||v_bbb;这个位置
v_aaa|| 和v_bbb中间引号的地方是TAB符,否则输出来的XLS文件中 , 会把这些字符串合在一个单元格中 。
在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 0M then
dbms_output.put_line('输出SQL语句1');
elsif M3 then
dbms_output.put_line('输出SQL语句2');
else
dbms_output.put_line('nothing');
end if;
end;
扩展资料;
存储在数据库的数据字典中,存储在当前的应用中安全性由数据库提供安全保证,必须通过授权才能使用存储子程序,安全性靠应用程序来保证,如果能执行应用程序,就能执行该子程序 。模式描述IN参数用来从调用环境中向存储过程传递值,不能给IN参数赋值,给此参数传递的值可以是常量、有值的变量、表达式等 。
参考资料来源:百度百科-Oracle存储过程
ORACLE中如何用DBMS_OUTPUT包输出表的所有数据DBMS_OUTPU.PUT_LINE是PL/SQL语言的输出语句 。如果要想输出表中所有数据,要通过游标循环读逐条读出和输出 。下面是一个简单例子:
BEGIN
FOR rec IN (SELECT *FROM emp)LOOP
dbms_output.put_line(rec.empno||rec.ename);
ENDLOOP;
END;
【oracle中如何输出行 oracle输出字符串】oracle中如何输出行的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于oracle输出字符串、oracle中如何输出行的信息别忘了在本站进行查找喔 。

    推荐阅读