zoukankan      html  css  js  c++  java
  • 替代变量与SQL*Plus环境设置

    转载自乐沙弥的世界: http://blog.csdn.net/robinson_0612/article/details/6084376

    本人只做了显示格式的调整。

    1.SQL与PL/SQL代码终止符
    SQL代码以";"来表示代码的终止
    PL/SQL代码以"."来表示代码的终止,以"/"表示代码的执行.

    scott@ORCL> select * from emp where empno=7788;
    
         EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
    ---------- ---------- --------- ---------- --------- ---------- ---------- ----------
          7788 SCOTT      ANALYST         7566 19-APR-87       3100                    20
    
    scott@ORCL> declare v_ename varchar2(10);
      2  begin
      3  select ename into v_ename from emp where empno=7788;
      4  dbms_output.put_line('Employee Name: '||v_ename);
      5  exception
      6      when no_data_found then
      7      dbms_output.put_line('There is no employee');
      8  end;
      9  .
    scott@ORCL> /
    Employee Name: SCOTT
    
    PL/SQL procedure successfully completed.
    

    2.替代变量

    &变量名、&&变量名
    执行时,如果&变量名,没有赋值的话,会提示输入变量值

    scott@ORCL> select * from emp where empno=&no;
    Enter value for no: 7788
    old   1: select * from emp where empno=&no
    new   1: select * from emp where empno=7788
    
         EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
    ---------- ---------- --------- ---------- --------- ---------- ---------- ----------
          7788 SCOTT      ANALYST         7566 19-APR-87       3100                    20
    
    scott@ORCL> save /u01/bk/scripts/select_empno.sql
    Created file /u01/bk/scripts/select_empno.sql
    scott@ORCL> @/u01/bk/scripts/select_empno.sql
    Enter value for no: 7788
    old   1: select * from emp where empno=&no
    new   1: select * from emp where empno=7788
    
         EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
    ---------- ---------- --------- ---------- --------- ---------- ---------- ----------
          7788 SCOTT      ANALYST         7566 19-APR-87       3100                    20
    

    set verify 的使用

    scott@ORCL> set verify off   --使用set verify off来关闭替代变量使用时的提示,即执行SQL语句前不显示使用的变量值
    scott@ORCL> @/u01/bk/scripts/select_empno.sql
    Enter value for no: 7788
    
         EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
    ---------- ---------- --------- ---------- --------- ---------- ---------- ----------
          7788 SCOTT      ANALYST         7566 19-APR-87       3100                    20    
    

    对于字符型和日期型数据,替代变量要加单引号( ' ' ),将变量括起来

    select * from emp where job='&job'
    

    &&  对输入变量的再次引用,同时会保存变量的值

    scott@ORCL> set serveroutput on;
    scott@ORCL> begin
      2  dbms_output.put_line('The num is '||&&num);   --使用双&&保存了变量num的值
      3  dbms_output.put_line('The second num is '||&num);  --因此第二次输出变量num也是
      4  end;
      5  /
    Enter value for num: 10
    The num is 10
    The second num is 10
    

    替代变量的设置

    set define character    --修改缺省的替代变量符号为其他符号,但不能使用数字和空格
    set define on           --启用替代变量
    set define off          --关闭替代变量
    
    scott@ORCL> set define off
    scott@ORCL> @/u01/bk/scripts/select_empno.sql
    SP2-0552: Bind variable "NO" not declared.
    

    3. DEFINE

    --DEFINE  定义变量
    define job=SALESMAN
    select * from emp where job='&job'
    
    --DEFINE 查看变量
    define
    define varname
    
    --ACCEPT  定义替代变量
    格式:accept 变量名[prompt 正文][HIDE]
    

    4.sql plus 环境设置

    set 设置环境变量
    如set linesize 200
    
    show 显示环境变量
    如show all 
    show linesize
    
    sql plus 环境配置文件
    配置文件:
    $ORACLE_HOME/sqlplus/admin/glogin.sql
    安装sql plus时创建的,卸载sql plus时会删除
    
    用户配置文件:
    文件名为login.sql,位置可任意放置,启动sql plus 时所在目录下有login.sql
    就会按设置进行环境配置,否则其它目录下的login.sql不理采。
    为了使用的方便一般会放到oracle用户的家目录
    
    set echo    @|start 运行脚本时,是否显示脚本内容
    set echo on/off
    
    scott@ORCL> set echo on;
    scott@ORCL> @/u01/bk/scripts/select_empno.sql
    scott@ORCL> select * from emp where empno=&no
      2  /
    Enter value for no: 7788
    
         EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
    ---------- ---------- --------- ---------- --------- ---------- ---------- ----------
          7788 SCOTT      ANALYST         7566 19-APR-87       3100                    20
    
    scott@ORCL> set echo off;       
    
    set feedback    设置脚注
    查询时返回多少行,会有提示,feedback控制提示显示
    可以是ON、OFF、n自然数,默认为
    
    set feedback on/off
    set feedback 10
    
    set heading {on/off}    控制是否显示列名
    set linesize    设置每行字符数
    set autocommit {on / off }  设置是否自动提交
    set long {80 |n}   设置查看长字符字段时的显示宽度
    column  设置列格式
    col ename format a15
    
    通用的SQL*Plus环境变量设置
    源自Tom大师:Expert Oracle Database Architecture: 9i and 10g Programming Techniques and Solutions    
    
    define _editor=vi
    set serveroutput on size 1000000
    set trimspool on
    set long 5000
    set linesize 180
    set pagesize 9999
    column plan_plus_exp format a80
    column global_name new_value gname
    set termout off
    define gname=idle
    column global_name new_value gname
    select lower(user) || '@' || substr( global_name, 1,
    decode( dot, 0, length(global_name), dot-1) ) global_name
    from (select global_name, instr(global_name,'.') dot from global_name );
    set sqlprompt '&gname> '
    set termout on
    

      

  • 相关阅读:
    java int转byte数组
    业务网关-操作手册
    业务网关-配置
    H2数据库的导入、导出(CSV)
    sequelize踩坑处理:时间格式化
    引入koa-static处理静态资源
    MySql利用case when实现批量更新多条记录的不同值实现方法
    Sequelize增删改查及批量新增或批量更新(bulkCreate的updateOnDuplicate)等常用接口
    数据结构队列、双端队列、队列系算法题解析
    配置webpack中externals来减少打包后vendor.js的体积
  • 原文地址:https://www.cnblogs.com/zhuntidaoren/p/8615364.html
Copyright © 2011-2022 走看看