oracle資料庫PL/SQL之基礎知識

來源:互聯網
上載者:User
一) 概述:oracle在標準sql語言上進行過程性擴充後形成的程式設計語言,是一種oracle特有的,支援應用開發的語言。二) 文法:1.基本結構declare    --聲明一些變數、常量、使用者定義的資料類型以及遊標等    --這一部分可選,如不需要可以不寫begin    --主程式體exception    --異常處理end;/2.字元集1)大小寫字母2)數字3)非顯示的字元、定位字元、空格和斷行符號4)數學符號+,-,*,/,<,>,=。5)間隔符,包括(),{},[],?,!,;,:,",'@,#,%,$,^,&等;3.資料類型1)數字類型NUMBER(P,S),可儲存整數和浮點數;P是有效數字個數,S是小數點右邊數位個數;PLS_INTEGERBINARY_INTEGER後兩種只能儲存整數與number等價的子類型:DEC、DECIMAL、DOUBLE、PRECISION、INTEGER、INT、NUMERIC、REAL、SMALLINT...2)字元類型VARCHAR2:儲存變長字串,VARCHAR2(maxlength)32767位元組,資料庫中該類型最大長度為4000位元組;CHAR:儲存定長字串,CHAR(maxlength) 32767位元組,資料庫中該類型最大長度為2000位元組LONG:儲存變長字串,最大長度為32760位元組,資料庫中該類型最大長度為2GBNCHARNVARCHAR2後兩種類型的長度根據各國字元集的不同而不同;3)日期類型DATA,7位元組,世紀、年、月、天、小時、分鐘和秒;4)布爾類型BOOLEAN5)type定義的資料類型(記錄)TYPE type_name IS RECORD(variable_name datatype[,variable_name datatype[,...);real_name type_name;記錄樣本:emp.eid%TYPEDECLARETYPE myrecord IS RECORD(id varchar2<10>,name varchar2<10>);real_record myrecord;BEGINSELECT eid,ename INTO real_record FROM emp WHERE eid='001';DBMS_OUTPUT.PUT_LINE(real_record.id||','||real_reacord.name);END;DECLARETYPE myrecord IS RECORD(id  emp.eid%TYPE ,name varchar2<10>);real_record myrecord;BEGINSELECT eid,ename INTO real_record FROM emp WHERE eid='001';DBMS_OUTPUT.PUT_LINE(real_record.id||','||real_reacord.name);END;DECLAREmyrec emp%ROWTYPEBEGINSELECT * INTO myrec FROM emp WHERE eid='001';DBMS_OUTPUT.PUT_LINE( myrec .eid||','||  myrec .ename);END4.控制結構1)IF語句IF 條件運算式1 THEN    語句序列1;[ELSIF 條件運算式2 THEN    語句序列2;][ELSE    語句序列3;]END IF;2)CASE語句CASE 檢測運算式WHEN 運算式1 THEN 語句序列1......WHEN 運算式n THEN 語句序列n[ELSE 其他語句序列]END;3)NULL值檢查4)迴圈結構LOOP...EXIT...ENDcontrol_var:=0;    LOOP    IF control_var>5 THEN        EXIT;    END IF;    control_var:=control_var+1;END LOOP;LOOP ... EXIT WHEN ...ENDcontrol_var:=0;    LOOP    EXIT WHEN control_var>5     control_var:=control_var+1;END LOOP;WHILE...LOOP...ENDcontrol_var:=0;WHILE control_var<=5 LOOP        control_var:=control_val+1;END LOOP;FOR...IN...LOOP...ENDFRO control_var in 0...5 LOOP    NULL;END LOOP; GOTO lable;... <<mark>>...IF no>98050 THEN            GOTO goto_mark;...5.運算式1)字元運算式'hello'||' world'||'!'=hello world!2)布林運算式ANDORNOT

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.