oracle預存程序使用筆記

來源:互聯網
上載者:User

(一)關於編寫預存程序需要注意以下幾點:
1>賦值符號 :=
  邏輯等 =
2>注釋單行代碼用  --
  注釋代碼塊用    /*---*/
3>字串串連符    ||
4>變數在變數聲明區內進行聲明:IS和BEGIN之間
5>變數聲明方式通常有如下三種:
   1)單個變數
     mo_flag        NUMBER     :=0;
     content        TABLE.CONTENT%TYPE;
   2)數組
     TYPE data_type IS TABLE OF VARCHAR2(10) INDEX BY BINARY_INTEGER;   --引用形式為data_type(i)
     TYPE rule_type IS RECORD (data_id TABLE.ID%TYPE,
                                                 data_name TABLE.NAME%TYPE
                                                 );                                       --引用形式為rule_type(i).data_id
6>經常用到的一個內建函數DECODE:
DECODE(id,1,'Southlake',
                       2,'San Francisco',
                       3,'New Jersey',
                       4,'Seattle',
                          'Non-domestic')
當id是1時,返回Southlake;是2時,返回San Francisco;依次,如果都不是時,返回Non-domestic

(二)PL/SQL塊結構
1>觸發器
CREATE OR REPLACE TRIGGER trigger_name
AFTER|BEFORE INSERT|UPDATE|DELETE ON table_name
FOR EACH ROW
DECLARE
  (聲明部分)
BEGIN
  (程式體)
EXCEPTION
  (異常處理部分)
END;
2>預存程序
CREATE OR REPLACE PROCEDURE name(參數) IS
  (聲明部分)
BEGIN
  (程式體)
EXCEPTION
  (異常處理部分)
END;
3>函數
CREATE OR REPLACE FUNCTION func_name(參數) RETURN data_type IS
  (聲明部分)
BEGIN
  (程式體)
EXCEPTION
  (異常處理部分)
END;

註:DECLARE在觸發器中進行變數聲明的時候需要,預存程序和函數的變數聲明時不需要

(三)應用和調試的時候需要注意以下幾種應用:
1>SET SERVEROUTPUT ON BUFFER 20000;
用dbms_output.put_line('strin_content');可以在預存程序中輸出資訊,對預存程序進行調試;
只有將serveroutput變數設為on後,資訊才能顯示在螢幕上
2>EXECUTE procedure_name;
執行一個預存程序
3>select function() from dual;
通過sql語句執行一個函數
4>DBMS_JOB.SUBMIT(job,'TEST_WARN_PROC;',sysdate,'sysdate+30/(24*60)');
表示這個Job的執行頻率是每隔30分鐘,DBMS_JOB.SUBMIT(任務號,要執行的預存程序,下次執行的時間,每次間隔的時間)
sysdate+x/24            每隔x小時執行一次
sysdate+x/(24*60)       每隔x分鐘執行一次
sysdate+x/(24*60*60)    每隔x秒執行一次
5>當報出錯誤資訊的時候,其中指出的行號說明如下:
行號的計數從關鍵字DECLARE開始,如果沒有則BEGIN語句的行號為1

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.