1、SELECT INTO语句:用于把从数据库查询出内容存入变量
DECLAREv_hire_date employees.hire_date%TYPE;v_salary employees.salary%TYPE;BEGINSELECT hire_date, salaryINTO v_hire_date, v_salaryFROM employeesWHERE employee_id = 100;...END;/SET SERVEROUTPUT ONDECLAREv_sum_sal NUMBER(10,2);v_deptno NUMBER NOT NULL := 60;BEGINSELECT SUM(salary) -- group functionINTO v_sum_salFROM employeesWHERE department_id = v_deptno;DBMS_OUTPUT.PUT_LINE ('The sum salary is ' ||TO_CHAR(v_sum_sal));END;/
2、PLSQL中的控制语句
A.判断语句
IF condition THENstatements;[ELSIF condition THENstatements;][ELSEstatements;]END IF;
CASE selectorWHEN expression1 THEN result1WHEN expression2 THEN result2...WHEN expressionN THEN resultN[ELSE resultN+1;]END;
1,对NULL的判断处理
B.循环语句
1,基本循环
LOOPstatement1;. . .EXIT [WHEN condition];END LOOP;
2,For循环
FOR counter IN [REVERSE]lower_bound..upper_bound LOOPstatement1;statement2;. . .END LOOP;
DECLAREv_country_id locations.country_id%TYPE := 'CA';v_location_id locations.location_id%TYPE;v_city locations.city%TYPE := 'Montreal';BEGINSELECT MAX(location_id) INTO v_location_idFROM locationsWHERE country_id = v_country_id;FOR i IN 1..3 LOOPINSERT INTO locations(location_id, city, country_id)VALUES((v_location_id + i), v_city, v_country_id );END LOOP;END;/
3,Wihle循环
WHILE condition LOOPstatement1;statement2;. . .END LOOP;
4,嵌套循环和Label
Label一般用不着,只有在使用goto语句,或者内部循环需要访问外部的同名变量的时候才需要,而一般这 种做法也是不被提倡的
...BEGIN<<Outer_loop>>LOOPv_counter := v_counter+1;EXIT WHEN v_counter>10;<<Inner_loop>>LOOP...EXIT Outer_loop WHEN total_done = 'YES';-- Leave both loopsEXIT WHEN inner_done = 'YES';-- Leave inner loop only...END LOOP Inner_loop;...END LOOP Outer_loop;END;
