PL/SQL编程的变量开发
PL/SQL开发走起来:
-----常量定义示列
DECLARE
c_salary_rate CONSTANT NUMBER(7,2):=0.25; ----定义加薪常量值
v_salary NUMBER(7,2);-----定义保存薪资结果的变量
BEGIN
SELECT sal*(1+c_salary_rate) INTO v_salary FROM emp WHERE empno='7369';
DBMS_OUTPUT.put_line('"加薪后的薪资:"'||'啦啦啦啦'||v_salary); -------"加薪后的薪资:"啦啦啦啦1000
END;
DECLARE
c_salary_rate CONSTANT NUMBER(7,2):=0.25; ----定义加薪常量值
v_salary NUMBER(7,2);-----定义保存薪资结果的变量
BEGIN
SELECT sal*(1+c_salary_rate) INTO v_salary FROM emp WHERE empno='7369';
DBMS_OUTPUT.put_line('加薪后的薪资:'||'啦啦啦啦'||v_salary); -------- 加薪后的薪资:啦啦啦啦1000
END;
DECLARE
c_salary_rate CONSTANT NUMBER(7,2):=0.25; ----定义加薪常量值
v_salary NUMBER(7,2);-----定义保存薪资结果的变量
BEGIN
SELECT sal*(1+c_salary_rate) INTO v_salary FROM emp WHERE empno='7369';
DBMS_OUTPUT.put_line('"加薪后的薪资:"'||'"啦啦啦啦"'||v_salary); ------"加薪后的薪资:""啦啦啦啦"1000
END;
DECLARE
c_salary_rate CONSTANT NUMBER(7,2):=0.25; ----定义加薪常量值
v_salary NUMBER(7,2);-----定义保存薪资结果的变量
v_jkhtbh varchar(32):='2018010987';
BEGIN
SELECT sal*(1+c_salary_rate) INTO v_salary FROM emp WHERE empno='7369';
DBMS_OUTPUT.put_line('加薪后的薪资是借款合同编号{''||v_jkhtbh||''}是啦啦啦啦'||v_salary); ----加薪后的薪资是借款合同编号{'||v_jkhtbh||'}是啦啦啦啦1000
END;
-----IF-THEN-ELSE
DECLARE
v_count NUMBER(10):=0;---定义计数器变量
v_empno NUMBER(4):=7788; ----定义员工编号
BEGIN
SELECT COUNT(1) INTO v_count FROM emp WHERE empno=v_empno;
--使用IF语句判断,如果员工编号不存在,结果为0
IF v_count=0
THEN
--则执行INSERT语句,插入新的员工记录
INSERT INTO emp(empno,ename,job,hiredate,sal,deptno)values(v_empno,'张三','经理',TRUNC(SYSDATE),1000,20);
ELSE
UPDATE emp SET ename='张三',job='经理',hiredate=TRUNC(SYSDATE),sal=1000,deptno=20 WHERE empno=v_empno;
END IF;
----向数据库提交更改,增删改的业务如果不commit就修改的数据只保留在会话级别
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_output.put_line(SQLERRM);
END;
---LOOP和EXIT使用示例
DECLARE
v_count NUMBER(2):=0;---定义循环计数变量
BEGIN
LOOP-----开始执行循环
v_count:=v_count+1;----累加计数变量
DBMS_OUTPUT.put_line('行'||v_count||':HELLO PL/SQL');
---如果计数条件为10,则退出循环
if v_count=10 then
exit;
end if;
end loop;
DBMS_OUTPUT.put_line('循环已经退出了');
END;
-----FOR-LOOP循环使用REVERSE
declare
v_total INTEGER:=0;----循环累计汇总数字
begin
for i in reverse 1..3 ----使用reverse从高到低循环
LOOP
v_total:=v_total+1;
DBMS_OUTPUT.put_line('循环累计数值:'||i);
end loop;
---输出循环结果
DNMS_OUTPUT.put_line('循环总计:'||v_total);
end;
declare
v_jkhtbh varchar(32) not null:='20180999887';
begin
null;
end;
今日有感:技术硬才是硬道理!学会养成目标型逆向思维!