1.块结构:PL/SQL程序被分割为称为块(block)的结构,块中包含PL/SQL程序语句。典型的PL/SQL块具有以下的结构:[DECLARE declaration_statements ]BEGIN executable_statements[EXCEPTION exception_handling_statements]END;语法元素:declaration_statement : 声明了在块的其余部分中使用的变量。这些变量是块的局部变量。executable_statment: 块的实际可执行语句。exeception_handling_statement: 处理可执行语句可能发生的错误。注意:每条语句都要有(;)分号结尾,块使用END关键字结尾。例程:DECLARE width INTEGER :=2; height INTEGER ; area INTEGER ;BEGIN height :=3 ; area :=width*height ; DBMS_OUTPUT.PUT_LINE('Area='||area); //表示在屏幕上显示;END;/ //表示执行这个PL/SQL块;注意:必须在SQL*PLUS中提前输入:SET SERVEROUTPUT ON 才能显示的输出。2.变量类型:变量名 变量类型 ;/ : = [初始数值] ; id INTEGER ;name VARCHAR2(20) :='BinMing'; * proname product.price%TYPE ; // (%TYPE) 表示proname 的类型要和product表中的price的类型一致。3.条件逻辑:1.IF [条件1] THEN [语句段]; ELSEIF [条件2] THEN ... END IF ;2.循环(简单循环/WHILE/FOR) 单循环:LOOP statementsEND LOOP;//一直循环语句段,除非显示的输入EXIT / EXIT WHEN 语句结束循环 WHILE循环:WHILE condition LOOP statementsEND LOOP;example: count:=0; WHILE counter<6 LOOP count :=count + 1 ; END LOOP ;3.FOR循环:FOR loop_variable IN [REVERSE] lower_bound..upper_bound LOOP statements;END LOOP;example: FOR id IN 3..6 LOOP DBMS_OUTPUT.PUT_LINE(id); END LOOP;4.游标的使用:步骤一: 声明变量来存储例值 :DECLARE id products.id%TYPE; 步骤二: 声明游标 :游标要放在声明部分中。CURSOR product_cursor IS Select id,name,price FROM products ORDER BY id; //声明了游标的类型或着说方法步骤三:打开游标 :使用OPEN语句打开游标,必须放在块的可执行部分中。 OPEN product_cursor ;步骤四: 从游标中获取行:使用 FETCH 语句读取游标中的行: FETCH: product_cursor; INTO id,name,price; //把值存储到上面声明的三个变量中.// 如果游标返回可能包含很多行的话,就要循环取出每一行数据, 可以使用product_cursor%NOTFOUND决定虚幻何时结束。步骤五: 关闭游标:CLOSE product_cursor;5.过程: 使用PL/SQL创建包含一组SQL语句和PL/SQL语句的过程。 可以使用这些过程将业务逻辑集中在数据库中,访问数据 库的任何程序都可以使用这些过程。 使用Create PROCEDURE 语句创建PL/SQL过程:Create[OR REPLACE] PROCEDURE procedure_name //过程名字[(parameter_name)[IN|OUT|IN OUT] type[, ])] //过程使用的参数{IS|AS}{ body};.IN 参数的默认模式。如果在过程运行时参数以有一个值,而且这个值在过程体中不能修改, 那么就应该指定这种模式。.OUT 如果参数的值只在过程体中设置,那么就应该指定这种模式。.IN OUT 如果在过程被调用时参数可能已经有一个值,但是这个值可以在过程体中修改,那么就应该指定这种模式。例子程序:Create PROCEDURE update_product_price( p_product_id IN products.id%TYPE ; p_factor IN NUMBER ; ) AS product_count INTEGER ; BEGIN Select COUNT(*) INTO product_count FROM products Where id = p_product_id; IF product_count = 1 THEN Update products SET price = price * p_factor ; COMMIT ; END IF ; END update_product_price ; / 相关文章: 2021-07-16 2022-12-23 2022-12-23 2021-08-31 2022-12-23 2021-12-23 2022-01-03 2022-12-23