set heading off等问题2010-09-01 11:03set heading off——不显示每行的列名
set echo off——不重复显示所要执行的sql语句
set line 200——设置每行显示200字符
set pages 0——不进行分页显示
set feed off——不显示sql语句的运行结果(selected N rows)

SQL code 
-- 这些代码的目的是将COMPONENT表的数据
-- 导出Insert语句
-- one_table.sql的代码是通过all_tab_columns,
-- 将表的列写成查询语句,并且加上set feedback off等设置命令
-- 并在./data/以导出表的名称命名的Sql文件,然后在执行这个文件,
-- 形成./data/以导出表的名称加_data命名的Sql文件。

--*******************************
--File main.sql
--*******************************
set echo off         -- 是否显示脚本中正在执行的SQL语句 on 显示 off 不显示
set serveroutput on  -- 使用dbms_output.put_line时,是否在屏幕上显示信息 on 显示 off 不显示
set feedback off     -- 是否显示当前sql语句查询或修改的行数 off 不显示查询或修改的行数     
set trimspool on     -- 是否去除重定向(spool)输出每行的拖尾空格,on 去除 off 不去除
set line 10000       -- 设置一行显示的字符总数
set verify off       -- 是否显示替代变量被替代前后的语句 on 显示 off 不显示
set head off         -- 是否显示列标题 on 显示 off 不显示

@@ one_table.sql 'COMPONENT';  -- 执行main.sql目录下的one_table.sql 'COMPONENT' 是输入的参数

set head on        
set line 100 
set feedback on 
set termout on   -- 是否显示脚本中的命令的执行结果 on 显示 off 不显示
set echo on

--*******************************
--File one_table.sql
--*******************************
prompt *** Process &1 ...;       -- 在屏幕上显示  *** Process COMPONENT ...

set serveroutput on 
set echo off 
set feedback off 
set trimspool on 
set line 10000 
set verify off 
set feedback off 
set head off 
set termout off
define tab_name = '&1'           -- 定义变量 tab_name 并且将 'COMPONENT' 赋值给tab_name

spool ./data/&tab_name..sql      -- 将屏幕显示的结果输出到./data/COMPONENT.sql文件中
declare                          -- 声明变量 关键字
  -- 定义 游标 C1 有两个入口参数 v_owner v_tab_name
  cursor c1(v_owner varchar2, v_tab_name varchar2) is
  select column_name, data_type
    from all_tab_columns
   where table_name = v_tab_name
     and owner = v_owner;
  -- 变量的注释只能用猜的
  field_list      varchar2(4000);  -- 存储表列的列表
  field_list_sel  varchar2(4000);  -- 存储选择的表列的列表
  fmt_field       varchar2(200);       
  date_format     varchar2(30) := 'yyyymmddhh24miss'; -- 日期格式
  v_owner varchar2(30) := user;  
  v_tab_name varchar2(30) := upper(trim('&tab_name')); 
begin
  dbms_output.enable(1000000);   -- 设置dmbs_output输出的缓冲区大小
  dbms_output.put_line('set echo off feedback off'); -- 在屏幕上输出 "set echo off feedback off" 信息
  dbms_output.put_line('spool ./data/&tab_name' || '_data.sql');
  -- Print the insert field 
  dbms_output.put_line('variable field_list varchar2(4000);');
  dbms_output.put_line('begin');
  dbms_output.put_line(' :field_list := ''insert into &tab_name (''' );
  -- 打开游标并c1并循环提取游标数据
  for rec1 in c1(v_owner, v_tab_name) loop
    if c1%rowcount = 1 then  -- 检查游标是否只有一条数据
      field_list := ' || '' ' || rec1.column_name || '''';
    else
      field_list := ' || '',' || rec1.column_name || '''';
    end if;
    dbms_output.put_line(field_list);
  end loop;

dbms_output.put_line('||'')''||chr(10)||''values ('';');
  dbms_output.put_line('end;');
  dbms_output.put_line('/');

-- For select SQL to generate insert statement
  dbms_output.put_line('select :field_list || chr(10) ||');
  for rec1 in c1(v_owner, v_tab_name) loop
    -- For insert values clause
    if rec1.data_type = 'DATE' then
      fmt_field := '''to_date(''''''||to_char(' || rec1.column_name || ', ''' || 
      date_format || ''')||'''''',''''' || date_format || ''''')''';
    elsif rec1.data_type in ('CHAR', 'VARCHAR2') then
      fmt_field := ''''''''' || replace(' || rec1.column_name || ','''''''', '''''''''''')|| ''''''''';
    else
      fmt_field := 'to_char(' || rec1.column_name || ')';
    end if;
    if c1%rowcount = 1 then
      field_list_sel := fmt_field;
    else 
      field_list_sel := ' ||'','' || ' || fmt_field;
    end if;
    dbms_output.put_line(field_list_sel);
  end loop;
  dbms_output.put_line('|| '');''');
  dbms_output.put_line('from &tab_name ;');
  dbms_output.put_line('spoo off;');
end;
/
spool off;

@ ./data/&tab_name..sql

set head on 
set line 100
set termout on

sqlplus set用法相关推荐

  1. oracle sql plus 安装教程视频教程,oracle 安装与SQLPLUS简单用法

    一 安装oracle数据库成功之后,会显示相关的数据库信息: 全局数据库名:oracle 系统标识符(SID):oracle 服务器参数文件名:c:\oracle\product\10.2.0\db_ ...

  2. Shell_Shell调用SQLPlus简介(案例)

    2014-06-20  Created By BaoXinjian 一.摘要 如果在Oracle EBS中开发Unix Shell,必定会涉及到在Shell中调用PLSQL,在Shell调用PLSQL ...

  3. oracle中set怎么用,sqlplus命令格式以及sqlplus中set的用法与解释-Oracle

    sqlplus命令格式以及sqlplus中set的用法与解释 [oracle@oracle02 username]$ sqlplus –help SQL*Plus: Release 9.2.0.4.0 ...

  4. sqlplus column命令用法

    column是sqlplus里最实用的一个命令,很多时候sql语句输出的列宽度不合适而影响查看,都需要用到这个命令来更改select语句中指定列的宽度和标题.大部分时候,我们可以简写column为co ...

  5. sqlplus编辑命令行用法

    sqlplus编辑命令行用法 set linedize 150 //每行显示的字符 set time on //在提示符前显示系统时间 SQL> set time on 12:25:08 SQL ...

  6. shell调用各种sqlplus用法

    一.最简单的shell里调用sqlplus. $ vi test1.sh #!/bin/bash sqlplus -S /nolog > result.log < set heading ...

  7. sqlplus -prelim/ as sysdba用法

    原文见:eygle博客 在某些情况下,数据库失去响应,sqlplus也无法连接,此时通常只能通过杀掉进程来解决. 但是我们仍然希望能够获得此时的数据库状态信息,以便用于事后诊断. 从Oracle10g ...

  8. linux下sqlplus用法,linux也适用的sqlplus 用法

    Oracle在Oracle 8.0.5之前都是使用字符界面来进行数据库的操作与管理的.而那时候其他最重要的工具就是SQL*plus, 它既可以编辑SQL语句,也可以编辑和调试pl/sql的程序. 下面 ...

  9. oracle sqlplus per,oracle profile sessions_per_user的用法

    sessions_per_user的作用是限制每个user能登录的最多会话数,如果没启用资源限制的话,那这个参数 即使设置了也不会生效的: 以下为测试过程: 创建每个用户只允许一个会话的限制 crea ...

最新文章

  1. vnc远程登录linux黑屏,linux VNC安装好后登录黑屏 鼠标显示黑色大叉的解决方法
  2. 使用Spring Security3的四种方法概述
  3. java typereference_记录一下jackson中TypeReference的使用
  4. 吴恩达神经网络和深度学习-学习笔记-15-局部最优
  5. Android--Activity中使用Intent传值
  6. 想要玩转Mac?试试这几款神器吧!
  7. 高德地图画带箭头的线_华耀室佳发光顶角线能否代替传统回型顶角线呢?
  8. Skype For Business 2015综合部署系列四:安装Skype Server系统 1
  9. 在Win2000和XP中更换身份不必非要注销
  10. paip.deivsuit安装.检测文件与文件夹锁定进程与解锁
  11. 中發白——企业软件公司的战略大三元
  12. Chromium OS并行运行Linux chroot安装Linux
  13. 定投复利公式 php,基金定投收益计算公式和复利计算公式
  14. 2021腾讯广告算法大赛联手ACM MM,共百万奖金池!
  15. python数据分析培训南京_基于Python的南京二手房数据可视化分析
  16. 运营简史:一文读懂互联网运营的20年发展与演变
  17. python绘制曲面图_Python:有没有办法用Matplotlib绘制“部分”曲面图?
  18. 03.服务限流实现方案
  19. JavaScript高级程序设计(第3版)电子版,非扫描下载
  20. 树莓派Zero W发布;亚马逊 AWS S3 服务出现故障 | IoT黑板报

热门文章

  1. 数学传奇丘成桐:《诗》明方向,《史记》教抉择
  2. 前后端分离,解决Spring Cloud GateWay + Nacos使用lb请求报503错误以及403跨域问题
  3. pandas合并excel的多个sheet
  4. 使用编码器控制步进电机
  5. overfeat论文待续
  6. 计算机 诊断卡原理,主板诊断卡.常见跑码.及维修故障说明:
  7. Thinkpad neo 14(i7处理器)拆机加硬盘
  8. 回首风信子,许展灵动
  9. 新版标准日本语初级_第十三课
  10. 响应式编程之三:RxJava应用:与Retrofit 结合的最佳实践