词条 | Substitution Variable |
释义 | Oracle替代变量在Oracle提供的相关工具中,如SQL PLUS管理平台中,允许数据库管理员采用替换变量来提高SQL语句的灵活性。替换变量的定义跟普通变量的定义类似,只需要在变量名前面加入&符号即可。当运行一段有替换变量的SQL语句时,数据库系统会自动提醒用户要输入哪些变量值。 (一)语法: &替换内容作用:提供用户输入的界面,在用户输入数据以后,先替换PL/SQL脚本,再编译执行。 (二)案例:1. 案例一:输入年龄,然后打印出来 SQL> declare 2 v_age number(3); 3 begin 4 v_age:=&年龄; 5 dbms_output.put_line('您的年龄是 = '||v_age); 6 end; 7 / 当运行时用户输入 年龄 的值是: 20,则 原值 4: v_age:=&年龄; 新值 4: v_age:=20; 说明:在用户输入“20”以后,将“&年龄”替换为了“20”。于是脚本的源代码发生了改变: declare v_age number(3); begin v_age:=20; dbms_output.put_line('您的年龄是 = '||v_age); end; 所以“&”变量并不是一个真正的变量,它不能保存任何内容,只是提供一个字符串替换的功能。 2. 案例二:用户输入姓名并打印。 declare v_age varchar2(3); begin v_age:=&姓名; dbms_output.put_line('您的姓名是 = '||v_age); end; 问题:如果用户输入“a”,程序是否能够运行,如果能,打印的结果是什么? 分析:当用户输入“a”,上面代码就是: declare v_age varchar2(3); begin v_age:=a; dbms_output.put_line('您的姓名是 = '||v_age); end; 由于“a”前后没有单引号,所以会被当作“标识符”即当作变量名。 但是a这个变量又没有定义。所以一定会提示如下的错误: 必须说明标识符 'A' 解决的方法就是:在“&”前后加上单引号,即: declare v_age varchar2(3); begin v_age:='&姓名'; dbms_output.put_line('您的姓名是 = '||v_age); end; / (三)替代变量小结:·替代变量的作用主要是为匿名块提供一个数据录入的界面。 ·替代变量只是完成字符串替换的功能,不能保存值。 ·如果替代变量是字符串,则必须加上单引号。 说明:如果是命名块,则通过名称和参数进行调用,此时不会再用替代变量。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。