拓扑园

  • Oracle性能优化
  • Oracle项目案例
    • Oracle近期项目案例(目录)
    • Oracle实战问题解析(目录)
    • Oracle数据库名变更流程(2种方式)
    • Oracle数据库目录更换流程(使用Oracle的clone工具)
    • Oracle数据库迁移方案(目录)
    • 标准化文档系列
  • 技术研究-密保
    • FG-MySQL
    • FG-Docker/K8S
    • FG-PostgreSQL
    • FG-ORACLE_BBED
    • FG-ORACLE
    • FG-Elasticsearch(ES)+ELK
    • Oracle-19C-OCP
    • WERN_ORACLE培训
    • redis数据库
    • Nginx培训学习系列
  • 图灵小队
    • MySQL8.0/Oracle/Memcached/Redis等安装配置于RHEL/OL6/7/8.X系列-运行环境最优配置
    • PG安装配置于RHEL/9X系列-运行环境最优配置
    • 自动维护任务详解-开启、关闭信息统计收集(统计信息)
    • 图灵小队-Oracle存储过程导出表的明细_UTL_FILE(文章)
    • 图灵小队-Oracle数据库删除/卸载操作指南(文章)
    • 图灵小队-Oracle常用性能查询SQL语句(文章)
    • 图灵小队-Oracle数据库上线前检查(文章)
    • 图灵小队-Oracle常用SQL语句(文章)
    • 图灵小队-Oracle脚本合集(文章)
    • 图灵小队-Oracle技巧记录(文章)
    • LLL的Oracle培训(目录)
    • LLL的docker培训(目录)
    • 标准化文档系列(目录)
    • Oracle/MySQl等面试题
    • 图灵小队
  • Oracle
    • Oracle
    • ADG
    • RAC
    • ASM
    • EXPDP/IMPDP
    • 工厂数据导入导出系列
    • OGG
    • RMAN
  • 云计算
    • 云计算
    • docker
    • kubernetes
  • Linux
    • Linux
    • PHP
    • Nginx
    • haproxy
    • mail
    • 网站
    • 域名
    • 网址收藏
  • 数据中心
    • 数据中心
    • EBS数据文件库容
    • VMware虚拟化
    • mysql
    • EBS系列
    • 大数据
    • SVN
    • zabbix
    • SAP
    • 备份相关
    • FC交换机
    • SVN
  • 其他
    • 外研英语4年级下册-听力
    • 影视系列
    • 如何使用iTunes软件通过抓包下载旧版本的ios的app
Oracle数据库恢复专家团队:TEL:18562510581(微信同号);QQ:284833194;QQ群:496333360
天高任鸟飞
  1. 首页
  2. 图灵小队
  3. 正文

图灵小队—Oracle存储过程导出表的明细_UTL_FILE(各工厂适合)

2022年3月9日 536点热度 0人点赞 0条评论

图灵小队—Oracle存储过程导出表的明细_UTL_FILE

1、创建路径

create or replace directory "dir_dest" as '/home/oracle'; 
grant read on directory "dir_dest" to sys; 
grant write on directory "dir_dest" to sys;

2、创建存储过程

注意:在PL/SQL中是没有数组(Array)概念的,但是如果程序员想用Array的话,可以用TYPE和 Table of Record变通一下,来代替多维数组.

create or replace procedure p_table_count
is 
  Num_Count number(20);
  str_Count_middle varchar(2000);
  str_Sql varchar(200);
  str_All varchar(400);
  vFileName varchar2(100); 
  OutputFile UTL_FILE.FILE_TYPE; 

-- 声明数组类型
  TYPE ts_varray IS VARRAY(110) OF varchar2(100); --120是最大的下标
-- 声明数组变量
  vs_varray ts_varray := ts_varray();

begin 
  OutputFile := utl_file.fopen('dir_dest','count_table.txt','a'); 
  vs_varray.extend; vs_varray(1) := 'SELECT count(*) FROM mes_prd.BK_ERROR_BANHAO';
  vs_varray.extend; vs_varray(2) := 'SELECT count(*) FROM mes_prd.MES_SO_PROCESSFLOW';
  vs_varray.extend; vs_varray(3) := 'SELECT count(*) FROM mes_prd.MES_SO_PFITEM';
  vs_varray.extend; vs_varray(4) := 'SELECT count(*) FROM mes_prd.MES_SO_PFITEMREL';
  vs_varray.extend; vs_varray(5) := 'SELECT count(*) FROM mes_prd.MES_PLAN_SOPFITEM';
  vs_varray.extend; vs_varray(6) := 'SELECT count(*) FROM mes_prd.MES_SO_PFGXMAT';
  vs_varray.extend; vs_varray(7) := 'SELECT count(*) FROM mes_prd.MES_SO_PFGXMAT_R';
  vs_varray.extend; vs_varray(8) := 'SELECT count(*) FROM mes_prd.MES_PRD_JIGONG';
  vs_varray.extend; vs_varray(9) := 'SELECT count(*) FROM mes_prd.MES_SO_PFITEMSEC';
  vs_varray.extend; vs_varray(10) := 'SELECT count(*) FROM mes_prd.MES_PRDSUBMIT_HIS';
  vs_varray.extend; vs_varray(11) := 'SELECT count(*) FROM mes_prd.MES_PRDSUBMIT';
  vs_varray.extend; vs_varray(12) := 'SELECT count(*) FROM mes_prd.MES_PRDSUBMIT_ITEM';
  vs_varray.extend; vs_varray(13) := 'SELECT count(*) FROM mes_prd.MES_PRD_PARA';
  vs_varray.extend; vs_varray(14) := 'SELECT count(*) FROM mes_prd.MES_DZ_STATUS_HIS';
  vs_varray.extend; vs_varray(15) := 'SELECT count(*) FROM mes_prd.MES_PZAUTOASSIGNWORK';
  vs_varray.extend; vs_varray(16) := 'SELECT count(*) FROM mes_prd.NEIP_LOG';
  vs_varray.extend; vs_varray(17) := 'SELECT count(*) FROM mes_prd.NEIP_TASK_HISTORY';
  vs_varray.extend; vs_varray(18) := 'SELECT count(*) FROM mes_prd.SYS_LOG';
  vs_varray.extend; vs_varray(19) := 'SELECT count(*) FROM mes_prd.MES_JMT_TRANSPORTCOST';
  vs_varray.extend; vs_varray(20) := 'SELECT count(*) FROM mes_prd.MES_JMT_DELIVERSHEETS';
  vs_varray.extend; vs_varray(21) := 'SELECT count(*) FROM mes_prd.MES_JMT_VOUCHERITEM';
  vs_varray.extend; vs_varray(22) := 'SELECT count(*) FROM mes_prd.MES_JMT_MATERIALDETAILS';
  vs_varray.extend; vs_varray(23) := 'SELECT count(*) FROM mes_prd.MES_JMT_CUSITEM';
  vs_varray.extend; vs_varray(24) := 'SELECT count(*) FROM mes_prd.MES_JMT_SEND';
  vs_varray.extend; vs_varray(25) := 'SELECT count(*) FROM mes_prd.MES_DC_WASTE_DEPOT';
  vs_varray.extend; vs_varray(26) := 'SELECT count(*) FROM mes_prd.MES_JMT_PROCESSCOST';
  vs_varray.extend; vs_varray(27) := 'SELECT count(*) FROM mes_prd.MES_JMT_BACKWAREHOUSE';
  vs_varray.extend; vs_varray(28) := 'SELECT count(*) FROM mes_prd.MES_PCDEPT_DAYWORKTIME';
  vs_varray.extend; vs_varray(29) := 'SELECT count(*) FROM mes_prd.MES_JMT_DAYWORKTIME';
  vs_varray.extend; vs_varray(30) := 'SELECT count(*) FROM mes_prd.MES_INTEGRATEDSERVICE';
  vs_varray.extend; vs_varray(31) := 'SELECT count(*) FROM mes_prd.MES_PLAN_STATELOCK';
  vs_varray.extend; vs_varray(32) := 'SELECT count(*) FROM mes_prd.MES_DC_ZHUANGBAN';
  vs_varray.extend; vs_varray(33) := 'SELECT count(*) FROM mes_prd.MES_DC_ZB_BANGUN';
  vs_varray.extend; vs_varray(34) := 'SELECT count(*) FROM mes_prd.MES_DC_ZB_JIGONG';
  
  FOR i IN 1 .. 34 LOOP
    -- 自增数组大小
    vs_varray.extend; --注释该行的话,会报下标越界的错误
    -- 数组赋值
    --vs_varray(i) := 'select count(*) from test.test01';
    execute IMMEDIATE vs_varray(i) into Num_Count;
    str_Count_middle:=str_Count_middle||vs_varray(i)||chr(9)||chr(9)||chr(9)||to_char(Num_Count)||chr(10); 
  END LOOP;
  str_All:=chr(10)||chr(13)||'************************************'||to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')||'***********************************'||chr(10)||chr(13);
  str_Count_middle:=str_All||str_Count_middle;
  utl_file.put(OutputFile,str_Count_middle); 
  utl_file.fflush(OutputFile); 
  utl_file.fclose(OutputFile); 
end ; 
/
标签: 暂无
最后更新:2022年3月10日

admin

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2022 拓扑园. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021020523号

鲁ICP备2021020523号