ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 输出oracle 对象源码(转)

输出oracle 对象源码(转)

原创 Linux操作系统 作者:jcszjswkzhou 时间:2019-03-24 18:21:05 0 删除 编辑
输出oracle 对象源码,sql,sql教程,Oracle基础

way 1:
通过spool输出到文件:

set serveroutput on
spool 'c:log.txt'

DECLARE
v_text VARCHAR2(1000);
--i number(3):=0;
CURSOR cur IS
SELECT text
FROM sys.DBA_SOURCE
WHERE OWNER = 'SCOTT'
AND NAME = 'TESTCCB';
BEGIN
OPEN cur;
LOOP
FETCH cur
INTO v_text;
--DBMS_OUTPUT.PUT_LINE(' cityname = ' ||v_name||' count='|| i);
DBMS_OUTPUT.put_line(v_text);
--i := i+ 1;
EXIT WHEN cur%NOTFOUND;

END LOOP;

CLOSE cur;
END;
/
spool off

way2:
利用 utl_file 包直接写出到文件
要求oracle用户对os文件系统有操作权限

DECLARE
v_text VARCHAR2(1000);
v_dir VARCHAR2(256);
v_owner VARCHAR2(128);
v_obj VARCHAR2(128);
l_output utl_file.file_type;
CURSOR cur IS
SELECT text
FROM dba_source
WHERE OWNER = v_owner
AND NAME = v_obj;
BEGIN
v_owner := 'SCOTT';
v_obj := 'EMP';
SELECT t.directory_path INTO v_dir FROM all_directories t;
l_output := utl_file.fopen(v_dir, 'tab.txt', 'w');
utl_file.new_line(l_output);
utl_file.put_line(l_output,
'-- output owner :' || v_owner || ' object: ' ||
v_obj);

OPEN cur;
LOOP
FETCH cur
INTO v_text;
EXIT WHEN cur%NOTFOUND;
utl_file.new_line(l_output);
utl_file.put_line(l_output, v_text);
END LOOP;
utl_file.new_line(l_output);
utl_file.put_line(l_output, '-- output finished! ');

utl_file.fclose(l_output);
CLOSE cur;
END;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-122211/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-08-29

  • 博文量
    3488
  • 访问量
    2621371