oracle函式初次嘗試
初次著手寫function,確實費了好長時間,一個if就需要有個end if ,並且else必須和if一起使用,可以直接對傳進來的引數使用oracle自帶的函式進行處理,並直接做做判斷條件。
需求根據如下java程式碼,建立一個函式來實現相同的功能:
public static int processCompanyName(String company_name){
String pre_log_n = pre_log+"processCompanyName(String company_name)";
System.out.println( pre_log_n+"::company_name="+company_name );
if( company_name==null )
return 99;
if( "".equals(company_name.trim()) )
return 99;
if( company_name.startsWith("[體驗]") )
return 2;
else if( company_name.startsWith("[微信]") )
return 3;
else if( company_name.startsWith("[體驗移動") )
return 4;
else if( company_name.startsWith("[採招圈") )
return 5;
else if( company_name.startsWith("[cn]") )
return 6;
else if( company_name.startsWith("[快速]") )
return 7;
else if( company_name.startsWith("[風向標") )
return 8;
else
return 1;
}
透過上面程式碼可知,需要透過判斷company_name(可以理解為一個引數)開頭的幾個字,來輸出特定的阿拉伯數字。
首先oracle函式的建立語句格式:
CREATE OR REPLACE FUNCTION 函式名
RETURN 返回值型別
IS
宣告部分;
BEGIN
函式體;
RETURN 變數;
END;
下面展示我寫的案例:
形式1:宣告一個引數(category_2),然後把傳進來的數值(category)賦給該引數,然後透過判斷引數category_2,來得到結果。
create or replace function get_source_id1
( category in varchar2)
return number
is
category_2 VARCHAR2(50);
category_source number(10);
begin
category_2:=category;
if substr(category_2,1,4)='[採招圈' then
category_source:=5;
END IF;
if substr(category_2,1,4)='[風向標' then
category_source:=8;
END IF;
if substr(category_2,1,5)='[體驗移動' then
category_source:=4;
END IF;
if substr(category_2,1,4)='[cn]' then
category_source:=6;
END IF;
if substr(category_2,1,4)='[體驗]' then
category_source:=2;
END IF;
if substr(category_2,1,4)='[微信]' then
category_source:=3;
END IF;
if substr(category_2,1,4)='[快速]' then
category_source:=7;
END IF;
if category_2 is null then
category_source:=99;
END IF;
if substr(category_2,1,4) not in ('[快速]','[微信]','[體驗]','[cn]','[風向標','[採招圈') and substr(category_2,1,5)!='[體驗移動'
then
category_source:=1;
END IF;
RETURN category_source;
end ;
形式2:直接判斷傳進來的引數。
create or replace function get_source_id
( category in varchar2)
return number
is
category_source number(10);
begin
if substr(category,1,4)='[採招圈' then
category_source:=5;
END IF;
if substr(category,1,4)='[風向標' then
category_source:=8;
END IF;
if substr(category,1,5)='[體驗移動' then
category_source:=4;
END IF;
if substr(category,1,4)='[cn]' then
category_source:=6;
END IF;
if substr(category,1,4)='[體驗]' then
category_source:=2;
END IF;
if substr(category,1,4)='[微信]' then
category_source:=3;
END IF;
if substr(category,1,4)='[快速]' then
category_source:=7;
END IF;
if category is null then
category_source:=99;
END IF;
if substr(category,1,4) not in ('[快速]','[微信]','[體驗]','[cn]','[風向標','[採招圈') and substr(category,1,5)!='[體驗移動'
then
category_source:=1;
END IF;
RETURN category_source;
end ;
形式3:也可以定義兩個引數,用來接收傳進來的引數,透過判斷這兩個引數,來得到結果。
create or replace function get_source_id
( category in varchar2)
return number
is
category_5 VARCHAR2(50);
category_4 VARCHAR2(50);
category_source number(10);
begin
category_5:=substr(category,1,5);
category_4:=substr(category,1,4);
if category_4='[採招圈' then
category_source:=5;
END IF;
if category_4='[風向標' then
category_source:=8;
END IF;
if category is null then
category_source:=99;
end if ;
if category_4='[cn]' then
category_source:=6;
END IF;
if category_4='[體驗]' then
category_source:=2;
END IF;
if category_4='[微信]' then
category_source:=3;
END IF;
if category_4='[快速]' then
category_source:=7;
end if;
if category_5='[體驗移動' then
category_source:=4;
end if;
if category_4 not in ('[快速]','[微信]','[體驗]','[cn]','[風向標','[採招圈') and category_5 !='[體驗移動]'then
category_source:=1;
end if;
return category_source;
end;
對於oracle 函式的初次體會:
1.在我的例子中category這個是定義個輸入值,它是一個一個去傳進來的。
2.oracle 函式區別去儲存過程,前者必須有一個返回值,儲存過程非必需。
3.oracle函式中沒出現一個if,就需要有個end if和他匹配。
4.對於無參函式的定義和呼叫都沒有圓括號,但無參儲存過程需要,例如我的category in varchar2 ,而不是category in varchar2(10)。
需求根據如下java程式碼,建立一個函式來實現相同的功能:
public static int processCompanyName(String company_name){
String pre_log_n = pre_log+"processCompanyName(String company_name)";
System.out.println( pre_log_n+"::company_name="+company_name );
if( company_name==null )
return 99;
if( "".equals(company_name.trim()) )
return 99;
if( company_name.startsWith("[體驗]") )
return 2;
else if( company_name.startsWith("[微信]") )
return 3;
else if( company_name.startsWith("[體驗移動") )
return 4;
else if( company_name.startsWith("[採招圈") )
return 5;
else if( company_name.startsWith("[cn]") )
return 6;
else if( company_name.startsWith("[快速]") )
return 7;
else if( company_name.startsWith("[風向標") )
return 8;
else
return 1;
}
透過上面程式碼可知,需要透過判斷company_name(可以理解為一個引數)開頭的幾個字,來輸出特定的阿拉伯數字。
首先oracle函式的建立語句格式:
CREATE OR REPLACE FUNCTION 函式名
RETURN 返回值型別
IS
宣告部分;
BEGIN
函式體;
RETURN 變數;
END;
下面展示我寫的案例:
形式1:宣告一個引數(category_2),然後把傳進來的數值(category)賦給該引數,然後透過判斷引數category_2,來得到結果。
create or replace function get_source_id1
( category in varchar2)
return number
is
category_2 VARCHAR2(50);
category_source number(10);
begin
category_2:=category;
if substr(category_2,1,4)='[採招圈' then
category_source:=5;
END IF;
if substr(category_2,1,4)='[風向標' then
category_source:=8;
END IF;
if substr(category_2,1,5)='[體驗移動' then
category_source:=4;
END IF;
if substr(category_2,1,4)='[cn]' then
category_source:=6;
END IF;
if substr(category_2,1,4)='[體驗]' then
category_source:=2;
END IF;
if substr(category_2,1,4)='[微信]' then
category_source:=3;
END IF;
if substr(category_2,1,4)='[快速]' then
category_source:=7;
END IF;
if category_2 is null then
category_source:=99;
END IF;
if substr(category_2,1,4) not in ('[快速]','[微信]','[體驗]','[cn]','[風向標','[採招圈') and substr(category_2,1,5)!='[體驗移動'
then
category_source:=1;
END IF;
RETURN category_source;
end ;
形式2:直接判斷傳進來的引數。
create or replace function get_source_id
( category in varchar2)
return number
is
category_source number(10);
begin
if substr(category,1,4)='[採招圈' then
category_source:=5;
END IF;
if substr(category,1,4)='[風向標' then
category_source:=8;
END IF;
if substr(category,1,5)='[體驗移動' then
category_source:=4;
END IF;
if substr(category,1,4)='[cn]' then
category_source:=6;
END IF;
if substr(category,1,4)='[體驗]' then
category_source:=2;
END IF;
if substr(category,1,4)='[微信]' then
category_source:=3;
END IF;
if substr(category,1,4)='[快速]' then
category_source:=7;
END IF;
if category is null then
category_source:=99;
END IF;
if substr(category,1,4) not in ('[快速]','[微信]','[體驗]','[cn]','[風向標','[採招圈') and substr(category,1,5)!='[體驗移動'
then
category_source:=1;
END IF;
RETURN category_source;
end ;
形式3:也可以定義兩個引數,用來接收傳進來的引數,透過判斷這兩個引數,來得到結果。
create or replace function get_source_id
( category in varchar2)
return number
is
category_5 VARCHAR2(50);
category_4 VARCHAR2(50);
category_source number(10);
begin
category_5:=substr(category,1,5);
category_4:=substr(category,1,4);
if category_4='[採招圈' then
category_source:=5;
END IF;
if category_4='[風向標' then
category_source:=8;
END IF;
if category is null then
category_source:=99;
end if ;
if category_4='[cn]' then
category_source:=6;
END IF;
if category_4='[體驗]' then
category_source:=2;
END IF;
if category_4='[微信]' then
category_source:=3;
END IF;
if category_4='[快速]' then
category_source:=7;
end if;
if category_5='[體驗移動' then
category_source:=4;
end if;
if category_4 not in ('[快速]','[微信]','[體驗]','[cn]','[風向標','[採招圈') and category_5 !='[體驗移動]'then
category_source:=1;
end if;
return category_source;
end;
對於oracle 函式的初次體會:
1.在我的例子中category這個是定義個輸入值,它是一個一個去傳進來的。
2.oracle 函式區別去儲存過程,前者必須有一個返回值,儲存過程非必需。
3.oracle函式中沒出現一個if,就需要有個end if和他匹配。
4.對於無參函式的定義和呼叫都沒有圓括號,但無參儲存過程需要,例如我的category in varchar2 ,而不是category in varchar2(10)。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29654823/viewspace-2128954/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 初次嘗試HTTPSHTTP
- 嘗試使用 pack 與 unpack 函式函式
- react native 的初次嘗試之環境搭建 Mac iosReact NativeMaciOS
- 【影象處理】人臉美顏演算法初次嘗試演算法
- oracle函式測試小記Oracle函式
- ORACLE FUNCTION函式中DETERMINISTIC測試OracleFunction函式
- 嘗試
- 【函式】ORACLE函式大全函式Oracle
- JAVAFX嘗試Java
- 嘗試1
- Oracle聚合函式/分析函式Oracle函式
- 【函式】Oracle EXTRACT()函式與to_char() 函式函式Oracle
- 一次恢復oracle的嘗試(轉)Oracle
- oracle 函式Oracle函式
- oracle or 函式Oracle函式
- Oracle函式Oracle函式
- 【函式】Oracle函式系列(2)--數學函式及日期函式函式Oracle
- 【函式】oracle nvl2 函式函式Oracle
- 初嘗試swiftSwift
- ios NFC嘗試iOS
- Oracle 函式大全(字串函式,數學函式,日期函式,邏輯運算函式,其他函式)Oracle函式字串
- Oracle分析函式與視窗函式Oracle函式
- oracle函式大全-字串處理函式Oracle函式字串
- Oracle分析函式七——分析函式案例Oracle函式
- 7 Oracle 函式Oracle函式
- Oracle 字串函式Oracle字串函式
- Oracle 字串函式Oracle字串函式
- ORACLE USERENV函式Oracle函式
- oracle dump 函式Oracle函式
- oracle Extract 函式Oracle函式
- Oracle字串函式Oracle字串函式
- ORACLE 常用 函式Oracle函式
- oracle函式索引Oracle函式索引
- Oracle dump函式Oracle函式
- Oracle 分析函式Oracle函式
- oracle reverse函式Oracle函式
- oracle字元函式Oracle字元函式
- oracle 常用函式Oracle函式