into用法: DECLARE a NUMBER; b number; c number;BEGIN SELECT MAX(SAL),MIN(SAL),AVG(SAL) INTO A,B,C FROM EMP; DBMS_OUTPUT.PUT_LINE('最高工資:'|| a); DBMS_OUTP ...
into用法:
DECLARE
a NUMBER;
b number;
c number;
BEGIN
SELECT MAX(SAL),MIN(SAL),AVG(SAL) INTO A,B,C FROM EMP;
DBMS_OUTPUT.PUT_LINE('最高工資:'|| a);
DBMS_OUTPUT.PUT_LINE('最低工資:'|| b);
DBMS_OUTPUT.PUT_LINE('平均工資:'|| c);
END;
if語句
DECLARE
score NUMBER := 90;
BEGIN
IF score < 60 THEN
dbms_output.put_line ( '你有些落後了,還不快追上' );
ELSIF score < 80 THEN
dbms_output.put_line ( '成績一般,要加把勁.' );
ELSE
dbms_output.put_line ( '你很優秀' )
END IF;
END;
SELECT PRODUCT_ID,PRODUCT_TYPE_ID,
CASE
WHEN PRODUCT_TYPE_ID=1 THEN '圖書類'
WHEN PRODUCT_TYPE_ID=2 THEN '服裝類'
WHEN PRODUCT_TYPE_ID=3 THEN '日用類'
WHEN PRODUCT_TYPE_ID=4 THEN '電器類'
ELSE '其它分類'
END CASE;
from products
DECLARE
score NUMBER := 70;
BEGIN
CASE
WHEN score > 80 THEN
dbms_output.put_line ( '優秀' );
WHEN score > 60 THEN
dbms_output.put_line ( '一般' );
ELSE
dbms_output.put_line ( '待努力' );
END CASE;
END;
DECLARE
a integer := 10;
total integer := 1;
BEGIN
LOOP
total := total*a;
a:=a-1;
EXIT WHEN a=1;
END LOOP;
dbms_output.put_line('10*9*...*2*1='||total);
END;
例如:1.計算198-273之和
DECLARE
a integer;
tot integer:=0;
BEGIN
FOR a IN 198..273 LOOP
tot:=a+tot;
END LOOP;
dbms_output.put_line('198+199+...+273='||tot);
END;
2.又如列印九九乘法表
DECLARE
a INTEGER;
b INTEGER;
c INTEGER;
BEGIN
FOR a IN 1..9 LOOP
FOR b IN 1..a LOOP
c:=a*b;
dbms_output.put(b||'*'||a||'='||c||' ');
END LOOP;
dbms_output.put_line('');
END LOOP;
END;
goto結構又稱跳轉結構,可以在PLSQL塊中設定一個標簽,
標簽使用<<標簽名>>來定義,然後使用goto 標簽名;完成跳轉。
巧妙的使用goto語句能實現選擇結構,也能實現迴圈結構。
例如改寫計算1-100之和的程式
DECLARE
a INTEGER:=1;
tot INTEGER:=0;
BEGIN
<<cal>>
tot:=tot+a;
a:=a+1;
IF a<=100 THEN
GOTO cal;
END IF;
dbms_output.put_line('1+2+...+100='||tot);
END;