1.1結構化程序設計
1.順序結構
2.分支結構
<pre name="code" class="html">IF...
THEN...;
ELSIF...
THEN...;
END IF;
3.循環結構
<div style="font-family: simsun; font-size: 14px; line-height: 21px; background-color: rgb(204, 232, 207);"><span style="word-wrap: normal; word-break: normal; line-height: normal; widows: 2; border-collapse: separate; font-stretch: normal;font-size:14px; orphans: 2; border-spacing: 0px;"><span style="color:#FF0000;word-wrap: normal; word-break: normal; line-height: 21px;">1.ORACLE中的GOTO用法</span></span></div><div style="font-family: simsun; font-size: 14px; line-height: 21px; background-color: rgb(204, 232, 207);"> <wbr><wbr><span style="font-family:宋體;word-wrap: normal; word-break: normal;">DECLARE
x number;
BEGIN
x:=9;
<<repeat_loop>> <wbr><wbr><span style="word-wrap: normal; word-break: normal;"> <wbr></wbr></span>--循環點
x:=x-1;
DBMS_OUTPUT.PUT_LINE(X);
IF X>0
THEN
GOTO repeat_loop; <wbr><wbr><span style="word-wrap: normal; word-break: normal;"> <wbr></wbr></span>--當x的值小於9時,就goto到repeat_loop
END IF;
END;
/</wbr></wbr></wbr></wbr></span></wbr></wbr></div><div style="font-family: simsun; font-size: 14px; line-height: 21px; background-color: rgb(204, 232, 207);"> <wbr><wbr></wbr></wbr></div><div style="font-family: simsun; font-size: 14px; line-height: 21px; background-color: rgb(204, 232, 207);"><span style="color:#FF0000;word-wrap: normal; word-break: normal;">2。ORACLE中的FOR循環用法</span></div><div style="font-family: simsun; font-size: 14px; line-height: 21px; background-color: rgb(204, 232, 207);"><span style="font-family:宋體;word-wrap: normal; word-break: normal;">DECLARE
X number; <wbr><wbr><span style="word-wrap: normal; word-break: normal;"> <wbr></wbr></span>--聲明變量
BEGIN
x:=1; <wbr><wbr> <wbr><wbr> <wbr><wbr><span style="word-wrap: normal; word-break: normal;"> <wbr></wbr></span>--給初值
FOR X IN REVERSE 1..10 LOOP <wbr><wbr> <wbr><wbr><span style="word-wrap: normal; word-break: normal;"> <wbr></wbr></span>--reverse由大到小
DBMS_OUTPUT.PUT_LINE('內:x='||x);
END LOOP;
DBMS_OUTPUT.PUT_LINE('end loop:x='||X); <wbr><wbr> <wbr><wbr><span style="word-wrap: normal; word-break: normal;"> <wbr></wbr></span>--x=1
END;
/</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span></div><div style="font-family: simsun; font-size: 14px; line-height: 21px; background-color: rgb(204, 232, 207);"> <wbr><wbr></wbr></wbr></div><div style="font-family: simsun; font-size: 14px; line-height: 21px; background-color: rgb(204, 232, 207);"><span style="color:#FF0000;word-wrap: normal; word-break: normal;">3。ORACLE中的WHILE循環用法</span></div><div style="font-family: simsun; font-size: 14px; line-height: 21px; background-color: rgb(204, 232, 207);"><span style="font-family:宋體;word-wrap: normal; word-break: normal;">DECLARE
x number;
BEGIN
x:=0;
WHILE x<9 LOOP
x:=x+1;
DBMS_OUTPUT.PUT_LINE('內:x='||x);
END LOOP;
DBMS_OUTPUT.PUT_LINE('外:x='||x);
END;
/</span></div><div style="font-family: simsun; font-size: 14px; line-height: 21px; background-color: rgb(204, 232, 207);"> <wbr><wbr></wbr></wbr></div><div style="font-family: simsun; font-size: 14px; line-height: 21px; background-color: rgb(204, 232, 207);"><span style="color:#FF0000;word-wrap: normal; word-break: normal;">4。ORACLE中的LOOP循環用法</span></div><div style="font-family: simsun; font-size: 14px; line-height: 21px; background-color: rgb(204, 232, 207);"><span style="font-family:宋體;word-wrap: normal; word-break: normal;">DECLARE
x number;
BEGIN
x:=0;
LOOP
x:=x+1;
EXIT WHEN x>9;
DBMS_OUTPUT.PUT_LINE('內:x='||x);
END LOOP;
DBMS_OUTPUT.PUT_LINE('外:x='||x);
END;</span></div>
1.2與SQL語言整合(參考DML/DDL/DCL及動態SQL)
只能直接使用DML語句,處理DDL語句的方式是使用動態SQL。
1.3面向對象開發
<pre name="code" class="html">CREATE OR REPLACE TYPE emp_obj AS OBJECT();
--定義對象類型體,實現對象方法
CREATE OR REPLACE TYPE BODY emp_obj AS...
END;
1.4模塊化應用程序開發
創建函數封裝
CREATE OR REPLACE FUNCTION getaddsr(p_job VARCHAR2)
RETURN NUMBER
AS
v_result NUMBER(7,2);
BEGIN
IF...THEN...;
ELSIF...THEN...;
END IF;
RETURN v_result;
END;
調用函數簡化程序
v_ratio:=getaddsr(v_job);
1.5提高應用程序性能
通過在應用程序中嵌入PL/SQL塊,在網絡上只需要發送一次PL/SQL塊,就可以同時執行多條SQL語句,大大提高了程序性能。