Postgresql存儲過程_第1頁
Postgresql存儲過程_第2頁
Postgresql存儲過程_第3頁
Postgresql存儲過程_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、用PL/pgSQL寫postgreSQL的存儲過程一、存儲過程結構:Create or replace function過程名(參數名 參數類型,:.)returns返回值類型 as $body$/聲明變量Declare變量名變量類型;如:flag Boolean;變量賦值方式(變量名類型:=值;)如:Str text :=值;/ str text; str :=值;Begin函數體;End;$body$Language plpgsql;二、 變量類型:除了 postgresql內置的變量類型外,常用的還有RECORD,表示一條記錄三、連接字符:Postgresql存儲過程中的連接字符不再是&

2、quot;+”,而是使用“ | ”。四、控制結構:1、if條件(五種形式)IF . THENIF . THEN . ELSEIF . THEN . ELSE IFIF . THEN . ELSIF . THEN . ELSEIF . THEN . ELSEIF . THEN . ELSE(注:elseif 是 elsif 的別名)2、循環使用 LOOP,EXIT,CONTINU,EWHILE, 和 FOR 語句,可以控制 PL/pgSQL 函數重復一系列命令。1)、 LOOP << label >> LOOPstatementsEND LOOP label ;LOOP定

3、義一個無條件的循環,無限循環,直到由EXIT或者RETURNS句終止。 可選的 label 可以由 EXIT 和 CONTINUE 語句使用, 用于在嵌套循環中聲明應該 應用于哪一層循環。2)、EXITEXIT label WHEN expression ;如果沒有給出 label , 那么退出最內層的循環,然后執行跟在 END LOOP 后 面的語句。 如果給出 label , 那么它必須是當前或者更高層的嵌套循環塊或者語 句塊的標簽。 然后該命名塊或者循環就會終止, 而控制落到對應循環 /塊的 END 語 句后面的語句上。如果聲明了 WHE,N 循環退出只有在 expression 為真的

4、時候才發生, 否則控 制會落到 EXIT 后面的語句上。EXIT 可以用于在所有的循環類型中, 它并不僅僅限制于在無條件循環中使用。 在和 BEGIN 塊一起使用的時候, EXIT 把控制交給塊結束后的下一個語句。例如:Loop 循環If , then 條件判斷Exit ; 條件成立,則退出循環。End if;End loop ;3)、 CONTINUECONTINUE label WHEN expression ;如果沒有給出 label ,那么就開始最內層的循環的下一次執行。 也就是說, 控制傳遞回給循環控制表達式(如果有),然后重新計算循環體。 如果出現了 label ,它聲明即將繼續執

5、行的循環的標簽。如果聲明了 WHEN那么循環的下一次執行只有在 expression為真的情況 下才進行。否則,控制傳遞給 CONTINUE后面的語句。CONTINUED以用于所有類型的循環;它并不僅僅限于無條件循環。例如 :LOOP一些計算EXIT WHEN count > 100;CONTINUE WHEN count < 50;一些在 count 數值在 50 . 100里面時候的計算END LOOP;4)、WHILE << label >> WHILE expression LOOPstatementsEND LOOP label ;只要條件表達式為

6、真,WHILE語句就會不停在一系列語句上進行循環條件是在每次進入循環體的時候檢查的 .例如 :WHILE amount_owed > 0 AND gift_certificate_balance > 0 LOOP- 可以在這里做些計算END LOOP;WHILE NOT BOOLEAN_expression LOOP- 可以在這里做些計算END LOOP;5)、FOR (整數變種) << label >> FOR nameIN REVERSE expression . expression LOOP statementsEND LOOP labal ;這種形

7、式的FOR對一定范圍的整數數值進行迭代的循環。變量name會自動定義為 integer 類型并且只在循環里存在。 給出范圍上下界的兩個表達式在進入循環的時 候計算一次。 迭代步進值總是為1,但如果聲明了 REVERS就是-1。一些整數FOR循環的例子:FOR i IN 1.10 LOOP 表示 1 循環到 10 這里可以放一些表達式 RAISE NOTICE 'i IS %', i;END LOOP;FOR i IN REVERSE 10.1 LOOP這里可以放一些表達式END LOOP;如果下界大于上界(或者是在REVERSE情況下是小于),那么循環體將完全不被執行。 而且不會拋出任何

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論