select*fromempwhereempno=7788;EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO-------" />

替代变量与SQL*Plus环境设置

系统 1521 0

--============================

-- 替代变量与 SQL*Plus 环境设置

--============================

 

 

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 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

   

5. 更多参考

有关 SQL 请参考

        SQLPlus 常用 命令

        SQL 基础--> 子查询

        SQL 基础--> 多表查询

SQL 基础--> 分组与分组函数

SQL 基础--> 常用函数

SQL 基础--> ROLLUP 与CUBE 运算符实现数据汇总

SQL 基础--> 层次化查询(START BY ... CONNECT BY PRIOR)

 

    有关 PL/SQL 请参考

        PL/SQL --> 语言基础

        PL/SQL --> 函数

        PL/SQL --> 异常处理

        PL/SQL --> 存储过程

        PL/SQL --> 流程控制

 

 

替代变量与SQL*Plus环境设置


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论