编者按:
四十不惑是要有自己的判断力。根据自身的状况,知道对自己而言,什么是最重要的!
最好的学习是实践加上看官方文档。官方文档中的代码例更是精华和重点所在。
IT行业如此,编程如此,Oracle PL/SQL的学习更是如此。
本系列以摘自《Database PL/SQL Language Reference》的PL/SQL代码例为主进行介绍。
【免责声明】本公众号文章仅代表个人观点,与任何公司无关。

编辑|SQL和数据库技术(ID:SQLplusDB)
Oracle PL/SQL例
Oracle PL/SQL编程基础
Oracle PL/SQL例2:处理查询的结果行(基础循环)
Oracle PL/SQL例3:使用双引号
Oracle PL/SQL例4:文字(Literals)换行的处理
Oracle PL/SQL例5:注释
Oracle PL/SQL例6:声明变量/常量
Oracle PL/SQL例7:%TYPE 属性
Oracle PL/SQL例8:标识符引用
变量赋值的方法主要包括如下方法:
1. 通过赋值语句为变量赋值2. 使用SELECT INTO或FETCH语句为变量赋值3. 将变量作为OUT或IN OUT参数传递给子程序,然后在子程序内赋值。
1. 通过赋值语句为变量赋值
variable_name := expression;
例:
DECLARE -- You can assign initial values herewages NUMBER;hours_worked NUMBER := 40;hourly_salary NUMBER := 22.50;bonus NUMBER := 150;country VARCHAR2(128);counter NUMBER := 0;done BOOLEAN;valid_id BOOLEAN;emp_rec1 employees%ROWTYPE;emp_rec2 employees%ROWTYPE;TYPE commissions IS TABLE OF NUMBER INDEX BY PLS_INTEGER;comm_tab commissions;BEGIN -- You can assign values here toowages := (hours_worked * hourly_salary) + bonus;country := 'France';country := UPPER('Canada');done := (counter > 100);valid_id := TRUE;emp_rec1.first_name := 'Antonio';emp_rec1.last_name := 'Ortiz';emp_rec1 := emp_rec2;comm_tab(5) := 20000 * 0.15;END;/
2. 使用SELECT INTO或FETCH语句为变量赋值
SELECT select_item [, select_item ]...INTO variable_name [, variable_name ]...FROM table_name;
例:
DECLAREbonus NUMBER(8,2);BEGINSELECT salary * 0.10 INTO bonusFROM employeesWHERE employee_id = 100;END;DBMS_OUTPUT.PUT_LINE('bonus = ' || TO_CHAR(bonus));/结果:bonus = 2400
3. 将变量作为OUT或IN OUT参数传递给子程序,然后在子程序内赋值。
DECLAREemp_salary NUMBER(8,2);PROCEDURE adjust_salary (emp NUMBER,sal IN OUT NUMBER,adjustment NUMBER) ISBEGINsal := sal + adjustment;END;BEGINSELECT salary INTO emp_salaryFROM employeesWHERE employee_id = 100;DBMS_OUTPUT.PUT_LINE('Before invoking procedure, emp_salary: ' || emp_salary);adjust_salary (100, emp_salary, 1000);DBMS_OUTPUT.PUT_LINE('After invoking procedure, emp_salary: ' || emp_salary);END;/结果:Before invoking procedure, emp_salary: 24000After invoking procedure, emp_salary: 25000
文章转载自SQL和数据库技术,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




