PL/SQL程式設計的變數開發
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;
今日有感:技術硬才是硬道理!學會養成目標型逆向思維!