SQL*Plus 使用技巧2

8. 使用&符号表示临时变量。 在Oracle中可以使用变量来编写通用的SQL,在运行语句时,为变量输入值。

   a. 临时变量只在使用它的SQL语句中有效,变量值不能保留。临时变量也被称为替换变量。
		select salary,&column_n
		from employees
		where rownum < &row

   b. 在SQL中如果希望重新使用某个变量并且不希望重新提示输入变量值是,那么可以使用&&符号来定义临时变量。


   c. set verify off/on 显示和不显示类似如下的信息:
	原值    1: select salary,&column_name, first_name
	新值    1: select salary,last_name, first_name

9. 使用已定义变量(具有明确定义的变量,该变量的值会一直保留到被显示地删除,重定义或退出SQL*Plus为止)
   a. 在SQL语句中,可以在使用变量之前对变量进行定义,然后在SQL语句中可以多吃使用这个变量。
   b. define/accept 定义变量; c. undefine 删除变量。
  
   define 显示所有已定义变量; define variable 显示指定变量名称,值和其数据类型。
   define variable = value 创建一个char 类型变量,并赋初始值

		SQL> define sal = 4400
		SQL> select * from employees
		  2  where salary = &sal
		  3  /

   d。 使用accept命令定义变量,并且定制一个用户提示。定义是可以明确指定变量类型。

	acc[ept] variable [data_type][for[mat] format] [def[ault] default] [prompt text|nopr[ompt]][hide]
	SQL> accept test char prompt 'Hi, you are required first_name which is '
	Hi, you are required first_name which is 'Put'
	SQL> select * from employees where first_name = &test;
	原值    1: select * from employees where first_name = &test
	新值    1: select * from employees where first_name = 'Put'

10. column 格式化列的显示效果,包括列标题和列数据。使用clear columns 删除格式化。
    col[umn] [{column_name|ali[as] alias}[options]]
    a。column_name 指定列名。 b.alias alias指定要格式化的列的别名。
    c. options 指定用于格式化了或别名的一个或者多个选项。

	column salary heading 'sal' format L9999.99
	column last_name heading 'Name' fromat a18

column column_name for[mat] format
option选项: for[mat] format 将列或列名的显示格式设置为由format字符串指定的格式。
	     hea[ding] text 设置有text支付指定的列标题。
	     jus[tify] [{left|center|right}] 将列的输出信息左对齐、居中和右对齐。



11. pagesize 命令设置一页显示多少行数据,从而控制每一页显示数据量。
    set pagesize n  (n 表示每一页大小的正整数,最大是50000,默认值是14)
    页并不是仅仅由输出的数据行构成,而是sql*plus显示到屏幕上所有结果构成,包含标题和空行等。

12. linesize 命令 设置一行数据可以容纳的字符数量,默认数量是80. 如果linesize值较小,那么一行数据可能需要多行显示。
    set linesize n (n表示屏幕上一行数据可以容纳的字符数量,有效范围是1 - 32767)
	set pagesize 100;
	set linesize 5678;
	column employee_id justify center;
	column manager_id jus center;
	column department_id jus center;
	select * from employees;

13. 创建简单报表。
a 使用tti[tle] [printspec [text|variable]...]|[off|on] 设置出现在每一个页面顶端的页眉。
   printspec 的可选值有left,centere,right,bold,format text,col n, s[kip][n]和tab n.
   on 选项表示启用设置;off表示取消设置。
   还可带有用户变量(内容有系统维护),如sql.pno页号,sql.lno行号等。

b. 使用bti[tle] [printspec[text|variable]..]]|[on|off] 指定出现在报表中每一页面底部的页脚。 
c. 最后需要记得使用命名tti/btti off 关闭。
	SQL> ttitle left 'Date: ' _date center 'Query data from employees' right 'Page: ' format 999 skip 2 sql.pnd
	SQL> btitle center 'Thank you for viewing this report'
	SQL> set echo off
	SQL> set verify off
	SQL> set pagesize 50
	SQL> set linesize 5000
	SQL> column employee_id heading 'emp_no' format 9999
	SQL> column salary heading 'sal' format L99,999.99
	SQL> column job_id justify center
	SQL> column department_id justify center
	SQL> select * from employees;


14. 计算小计break以及compute命令。
    bre[ak] [on column_name] skip n
 a.column_name 表示对哪一列执行操作。
 b.skip n表示在指定列的值变化之前插入n个空行。
    comp[ute] function lable lable_text of column on
 a.表示执行的操作,例如sum/avg/count等。
 b. lable 指定显示结果是的文本信息。

break on deptno  表示根据deptno进行分组。
compute sum of salary on deptno 表示根据员工所在部门分组,再求工资之和。
SQL> set pagesize 100;
SQL> set linesize 5000;
SQL> break on department_id;
SQL> compute sum of salary on department_id;
SQL> select * from employees;

  到此为止,为期两天的plsql*plus的相关操作以及学完,希望自己经常使用不至于遗忘。
小操作小技巧还是需要实践中获知。

猜你喜欢

转载自wkf41068.iteye.com/blog/1918861