Oracle資料類型,函數與預存程序

來源:互聯網
上載者:User

標籤:data-   mod   函數   字串類型   proc   UI   小數   oat   tracking   

字串類型
   固定長度:char nchar    n 表示Unicode編碼
   可變長度: varchar2 nvarchar2

數字類型:number(P,S)P:整數位元,S小數位元
          integer 整數
          BINARY_FLOAT  單浮點
          BINARY_DOUBLE 雙浮點
          FLOAT(N)浮點數 N表示精度
日期類型:DATE
          TIMESTAMP


使用者定義函數是儲存在資料庫中的代碼塊,能夠把值返回到調用程式。調用時如同


系統函數一樣,如max(value)函數,當中,value被稱為參數。函數參數有3種類型。
IN 參數類型:表示輸入給函數的參數。
OUT 參數類型:表示參數在函數中被賦值,能夠傳給函數調用程式。


IN OUT參數類型:表示參數既能夠傳值也能夠被賦值。
1、文法格式:
SQL文法方式建立的文法格式為:

CREATE OR REPLACE FUNCTION function_name         /*函數名稱*/
(
Parameter_name1,mode1 datatype1,            /*參數定義部分*/
Parameter_name2,mode2 datatype2,
Parameter_name3,mode3 datatype3

)
RETURN return_datatype                /*定義返回值類型*/
IS/AS
variable variableType;                               /*聲明變數*/
BEGIN
       Function_body                  /*函數體部分*/
      RETURN scalar_expression                        /*返回語句*/
END function_name;
說明:

function_name::使用者定義的函數名。

函數名必須符合標示符的定義規則。對其全部者來說,該名在資料庫中是唯一的。
parameter:使用者定義的參數。

使用者能夠定義一個或多個參數。
mode:參數類型。


datatype:使用者定義參數的資料類型。
return_type::使用者返回值的資料類型。


函數返回scalar_expression運算式的值。function_body函數體由pl/sql語句構成。
執行個體:
create or replace function getName(uid in integer) return varchar2
       as 
 username varchar2(10)
 begin
   select name into username from users where id=uid;
   return(username);
 end getName;
注意:
(1)假設函數沒有參數,那麼函數名後不應該要括弧;在調用的時候也不須要參數名

(2)建立函數的時候end後面一定要記得寫函數名

--沒有參數的函數    
create or replace function get_user return varchar2 is   
  v_user varchar2(50);    
begin   
  select username into v_user from user_users;    
  return v_user;    
end get_user;   



預存程序
Oracle預存程序基本的文法 預存程序 
  1 CREATE OR REPLACE PROCEDURE 預存程序名 (參數名 類型  參數資料類型,...)
  2 IS 
  3 BEGIN 
  4 NULL; 
  5 END; 
行1: 
  CREATE OR REPLACE PROCEDURE 是一個SQL語句通知Oracle資料庫去建立一個叫 做skeleton預存程序, 如      果存在就覆蓋它; 
行2: 
  IS關鍵詞表明後面將尾隨一個PL/SQL體。

 
行3: 
  BEGIN關鍵詞表明PL/SQL體的開始。 
行4: 
  NULL PL/SQL語句表明什麼事都不做,這句不能刪去,由於PL/SQL體中至少須要有一句; 
行5: 
  END關鍵詞表明PL/SQL體的結束 

比如:
   create or replace procedure  pCountUsers(id integer,name varchar2)
   as
  begin
   insert into users(id,name) values(id,name);
  end ;

  調用:call pCountUsers(2,‘KK‘);



函數與預存程序的差別:
   1. 返回值的差別,函數有1個返回值,而預存程序是通過參數返回的,能夠有多個  或者沒有
   2.調用的差別,函數能夠在查詢語句中直接調用,而預存程序必須單獨調用.
   函數普通情況下是用來計算並返回一個計算結果而預存程序通常是用來完畢特定的資料操作(比方改動、插入資料  庫表或運行某些DDL語句等等)





















Oracle資料類型,函數與預存程序

聯繫我們

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