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

2014-11-24 18:09:31 · 作者: · 浏览: 0

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.