在开始之前先讲一下PL/SQL客户端的安装,在安装PL/SQL之前必须要先安装oracle数据库,因为PL/SQL只是使用数据库的一个客户端。
安装oracle时选择安装的东西选择安装admin里所有的东西,安装好后,第一次使用PL/SQL登录时要先配置好tnsname.ora文件。
若遇到[ORA-12154: TNS: 无法解析指定的连接标识符]问题,则要先在工具->首选项->里先设置好oci.dll文件。
再次登录即可
(1)运算符
:= 表示赋值运算符;
.. 表示范围运算符;例如FOR int IN 1 .. v_count
|| 表示连接符号,可以将两个字段的值连接在一起,例:select 姓||名 from user;
:p_empno := 7369;表示什么意思?
类似:x ,那么冒号其实是占位符的意思,占位符在执行时必须赋值。
(2)标识符
PL/SQL程序设计中的标识符定义与SQL 的标识符定义的要求相同。要求和限制有:
a. 标识符名不能超过30字符;
b. 第一个字符必须为字母;
c. 不分大小写;
d. 不能用’-‘(减号);
e. 不能是SQL保留字。
提示: 一般不要把变量名声明与表中字段名完全一样,如果这样可能得到不正确的结果.
(3)PL/SQL块结构和组成元素
(4)DBMS_OUTPUT.PUT_LINE()方法的使用
只要是BEGIN和END之间,就可以使用DBMS_OUTPUT.PUT_LINE(output);
(5)%TYPE说明
为了使一个变量的数据类型与另一个已经定义了的变量(尤其是表的某一列)的数据类型相一致,Oracle提供了%TYPE定义方式。当被参照的那个变量的数据类型改变了之后,这个新定义的变量的数据类型会自动跟随其改变,容易保持一致,也不用修改PL/SQL程序了。
即v_name变量的类型始终与emp表中ename字段的类型保持一致。
(6)Oracle中的替换变量,&变量名
替换变量的格式是在变量名称前加一个&,以便在运行SQL命令时提示用户输入替换数据,然后按输入数据运行SQL命令
语法:
& :“&变量名”
eg:&name;
生命周期:单次引用中,不需要声明,如果替换字符或日期类型,最好用单引号扩起
使用范围:where、order by、列表达式、表名、整个SELECT 语句中
select info.* from info
where age=&anumber
order by name;
(7)变量作用范围及可见性
a. 变量的作用范围是在你所引用的程序单元(块、子程序、包)内。即从声明变量开始到该块的结束。
b. 一个变量(标识)只能在你所引用的块内是可见的。
c. 当一个变量超出了作用范围,PL/SQL引擎就释放用来存放该变量的空间(因为它可能不用了)。
(8)注释
使用 /* */ 来加一行或多行注释,
(9)可转换的类型赋值
a. CHAR 转换为 NUMBER:
使用 TO_NUMBER 函数来完成字符到数字的转换,如:
v_total := TO_NUMBER(‘100.0’) + sal;
b. NUMBER 转换为CHAR:
使用 TO_CHAR函数可以实现数字到字符的转换,如:
v_comm := TO_CHAR(‘123.45’) || ’元’ ;
c. 字符转换为日期:
使用 TO_DATE函数可以实现 字符到日期的转换,如:
v_date := TO_DATE('2001.07.03','yyyy.mm.dd');
d. 日期转换为字符:
使用 TO_CHAR函数可以实现日期到字符的转换,如:
v_to_day := TO_CHAR(SYSDATE, 'yyyy.mm.dd hh24:mi:ss') ;
(10)标号和GOTO
PL/SQL中GOTO语句是无条件跳转到指定的标号去的意思。语法如下:
GOTO label;
. . . . . .
<<label>> /*标号是用<< >>括起来的标识符,即跳转到了《lable》处的语句 */
NULL 语句表示什么也不做。