https://www.bilibili.com/video/av46777605
plsql中选择testWindow中可以进行测试
1、编写函数在plsql的testwindow中
begin
dbms_output.put_line(\'hello,world\');
end;
运行后可以在DBMS_output标签页中看到
如果在sqlplus中运行的话,需要输入一个 / 来表示输入完了,但因为sqlplus默认是不打开显示的,需要输入 set serveroutput on
2、变量赋值
-- Created on 2019/11/14 by LENOVO
declare
--姓名
V_NAME VARCHAR2(20);
--薪水
V_SAL NUMBER;
--地址
V_ADDR VARCHAR2(200);
begin
--直接赋值
V_NAME:=\'ADAM\';
V_SAL:=1590;
--语句赋值
select \'hello\' into v_addr from dual;
--打印输出
DBMS_OUTPUT.PUT_LINE(\'姓名:\'||v_name||\',薪水:\'||v_sal);
end;
3、两个变量该怎么写,另外声明的对象类型是什么样,去【表名】【字段名】【%TYPE】来定义
declare
--姓名
V_NAME PERSON.NAME%TYPE;
--分数
V_HEIGHT PERSON.HEIGHT%TYPE;
begin
SELECT NAME,HEIGHT INTO V_NAME,V_HEIGHT FROM PERSON WHERE AGE=20;
DBMS_OUTPUT.PUT_LINE(\'姓名:\'||V_NAME||\',身高:\'||V_HEIGHT);
end;
4、记录型变量
接受表中的一整行记录,相当于Java中的一个对象,注意,只能接收一条记录
语法:变量名称 表名%ROWTYPE 如V_PERSON PERSON%ROWTYPE;
declare
--一行记录
V_PERSON PERSON%ROWTYPE;
begin
SELECT * INTO V_PERSON FROM PERSON WHERE AGE=20;
DBMS_OUTPUT.PUT_LINE(\'姓名:\'||V_PERSON.NAME);
end;
5、流程控制
注意关键字ELSIF 中间少了个E
---判断person表中的记录数是否超过5条
declare
v_count NUMBER;
begin
SELECT COUNT(1) INTO v_count from person;
if (v_count < 5) then
DBMS_OUTPUT.PUT_LINE(\'小于5,共:\' || v_count);
Elsif (v_count < 10) then
DBMS_OUTPUT.PUT_LINE(\'大于5 小于10,共:\' || v_count);
Else
DBMS_OUTPUT.PUT_LINE(\'大于15,共:\' || v_count);
end if;
end;
6、循环
---判断person表中的记录数是否超过5条
declare
---声明循环变量
V_NUM NUMBER:=1;
BEGIN
--循环开始
LOOP
--退出条件
EXIT WHEN V_NUM>10;
DBMS_OUTPUT.PUT_LINE(V_NUM);
--自增条件
V_NUM:=V_NUM+1;
--循环结束
end LOOP;
end;
7、游标