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

來源:互聯網
上載者:User

Oracle資料類型,函數與預存程序,oracle資料類型
字串類型
   固定長度: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語句等等)





















著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

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.