最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

oracle定義常用函數(shù)的過(guò)程

 更新時(shí)間:2023年08月14日 15:09:29   作者:DAYTOY-105  
這篇文章主要介紹了oracle定義常用函數(shù)的過(guò)程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1 函數(shù)的創(chuàng)建、調(diào)用和權(quán)限

1.1 創(chuàng)建函數(shù)

create or replace function 函數(shù)名(參數(shù)1 模式 數(shù)據(jù)類型,......) return 數(shù)據(jù)類型
as
  -- 定義局部變量。
  變量1 數(shù)據(jù)類型;
  ......
begin
  -- 實(shí)現(xiàn)函數(shù)功能的PL/SQL代碼。
  ......
  exception
  -- 異常處理的PL/SQL代碼。
  ......
end;

說(shuō)明:

1)參數(shù)的模式有三種:

in:只讀模式,在函數(shù)中,參數(shù)只能被引用/讀取,不能改變它的值;

out:只寫(xiě)模式,參數(shù)只能被賦值,不能被引用/讀??;

in out:可讀可寫(xiě)。

注:參數(shù)的模式可以不寫(xiě),缺省為in,out和in out兩種模式極少使用。

2)as/is二選一,在這里沒(méi)有區(qū)別;

3)可以不定義局部變量;

4)可以沒(méi)有異常(exception)處理代碼段;

--示例,創(chuàng)建自定義函數(shù)maxvalue,用于比較兩個(gè)數(shù)字的大小,返回較大值;
create or replace function maxvalue(val1 number,val2 number) return number
as
  val number;   -- 定義局部變量,存放返回值。
begin
  if (val1>val2) then    -- 判斷傳入?yún)?shù)的大小。
      val:=val1;         -- 賦值是":=",不是"="。
  else
      val:=val2;
  end if;
  return val;  -- 返回
end;

1.2 函數(shù)的調(diào)用

自定義函數(shù)的調(diào)用與Oracle數(shù)據(jù)庫(kù)自帶的函數(shù)調(diào)用的方法相同。

select maxvalue(10, 20) from dual;

1.3 函數(shù)的權(quán)限

自定義函數(shù)是數(shù)據(jù)庫(kù)對(duì)象,oracle對(duì)它權(quán)限管理方式與其他數(shù)據(jù)庫(kù)對(duì)象相同;

如果maxvalue函數(shù)是用戶scott用戶創(chuàng)建的,其他用戶調(diào)用時(shí)需要加scott用戶名前綴,并且具備相應(yīng)的權(quán)限,否則會(huì)出現(xiàn)“ ORA-00904:"MAXVALUE": 標(biāo)識(shí)符無(wú)效 ”的錯(cuò)誤;

1.4 刪除自定義函數(shù)

drop function 函數(shù)名;
--eg:
drop function maxvalue;

2 MD5加密函數(shù)

create or replace function md5(passwd in varchar2) return varchar2 is
  retval varchar2(32);
begin
  retval := utl_raw.cast_to_raw(dbms_obfuscation_toolkit.md5(input_string => passwd));
  return retval;
end;

注:復(fù)制該語(yǔ)句,直接在plsql的SQL窗口中執(zhí)行即可完成創(chuàng)建;

使用:

select lower(用戶.md5('1234')) as 密文 from dual;

3 獲取漢字首字母拼音的函數(shù)

create or replace function fgetpy(v_str varchar2) return varchar2 as
  v_strlen int;
  v_return varchar2(500);
  v_ii     int;
  v_n      int;
  v_c      varchar2(2);
  v_chn    varchar2(2);
  v_rc     varchar2(500);
  /************************************************************************* 
  生成漢字拼音碼的函數(shù)。 2009-06-21  
  **************************************************************************/
begin
  --dbms_output.put_line(v_str); 
  v_rc     := v_str;
  v_strlen := length(v_rc);
  v_return := '';
  v_ii     := 0;
  while v_ii < v_strlen loop
    v_ii := v_ii + 1;
    v_n  := 63;
    select substr(v_rc, v_ii, 1) into v_chn from dual;
    select v_n + max(rowsf)
      into v_n
      from (select chn, rownum rowsf
              from (select chn
                      from (select '吖' chn
                              from dual
                            union
                            select '八'
                              from dual
                            union all
                            select '嚓'
                              from dual
                            union all
                            select '咑'
                              from dual
                            union all
                            select '妸'
                              from dual
                            union all
                            select '發(fā)'
                              from dual
                            union all
                            select '旮'
                              from dual
                            union all
                            select '鉿'
                              from dual
                            union all
                            select '丌'
                              from dual --because have no 'i' 
                            union all
                            select '丌'
                              from dual
                            union all
                            select '咔'
                              from dual
                            union all
                            select '垃'
                              from dual
                            union all
                            select '嘸'
                              from dual
                            union all
                            select '拏'
                              from dual
                            union all
                            select '噢'
                              from dual
                            union all
                            select '妑'
                              from dual
                            union all
                            select '七'
                              from dual
                            union all
                            select '呥'
                              from dual
                            union all
                            select '仨'
                              from dual
                            union all
                            select '他'
                              from dual
                            union all
                            select '屲'
                              from dual
                            union all
                            select '屲'
                              from dual
                            union all
                            select '屲'
                              from dual
                            union all
                            select '夕'
                              from dual
                            union all
                            select '丫'
                              from dual
                            union all
                            select '帀'
                              from dual
                            union all
                            select v_chn
                              from dual) a
                     order by nlssort(chn, 'NLS_SORT=SCHINESE_PINYIN_M')) c) b
     where chn = v_chn;
    v_c := chr(v_n);
    if chr(v_n) = '@' then
      --英文直接返回 
      v_c := v_chn;
    end if;
    v_return := v_return || v_c;
    v_return := lower(v_return);
  end loop;
  return v_return;
end fgetpy;

注:復(fù)制該語(yǔ)句,直接在plsql的SQL窗口中執(zhí)行即可完成創(chuàng)建;

使用:

select fgetpy('張三,李四,ww') from dual;

到此這篇關(guān)于oracle定義常用函數(shù)的文章就介紹到這了,更多相關(guān)oracle定義函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于oracle小數(shù)點(diǎn)前零丟失的問(wèn)題分析

    基于oracle小數(shù)點(diǎn)前零丟失的問(wèn)題分析

    本篇文章是對(duì)oracle小數(shù)點(diǎn)前零丟失的問(wèn)題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • Oracle數(shù)據(jù)庫(kù)opatch補(bǔ)丁操作流程

    Oracle數(shù)據(jù)庫(kù)opatch補(bǔ)丁操作流程

    這篇文章主要介紹了Oracle數(shù)據(jù)庫(kù)opatch補(bǔ)丁操作流程的相關(guān)資料,本文從升級(jí)前準(zhǔn)備工作到安裝補(bǔ)丁操作整理過(guò)程都介紹的非常詳細(xì),需要的朋友可以參考下
    2016-10-10
  • Oracle變量、輸入輸出、SELECT?INTO、%TYPE與%ROWTYPE詳解

    Oracle變量、輸入輸出、SELECT?INTO、%TYPE與%ROWTYPE詳解

    這篇文章主要介紹了Oracle變量、輸入輸出、SELECT?INTO、%TYPE與%ROWTYPE,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • oracle設(shè)置密碼復(fù)雜度及設(shè)置超時(shí)退出的功能

    oracle設(shè)置密碼復(fù)雜度及設(shè)置超時(shí)退出的功能

    我們都知道密碼策略加固的參數(shù)一般包括密碼長(zhǎng)度、復(fù)雜度檢測(cè)、最大最小使用時(shí)間、過(guò)期警報(bào)時(shí)間、最大登錄失敗次數(shù)以及鎖定時(shí)間等設(shè)置,下面這篇文章主要給大家介紹了關(guān)于oracle設(shè)置密碼復(fù)雜度及設(shè)置超時(shí)退出功能的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Oracle之TO_DATE用法詳解

    Oracle之TO_DATE用法詳解

    這篇文章主要介紹了Oracle之TO_DATE用法詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 獲取Oracle表大小的三種方法

    獲取Oracle表大小的三種方法

    在 Oracle 數(shù)據(jù)庫(kù)中,獲取表的大小可以通過(guò)查詢數(shù)據(jù)字典視圖 DBA_SEGMENTS、USER_SEGMENTS 或 ALL_SEGMENTS,具體取決于你的權(quán)限范圍和需求,本文通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • Oracle最新面試題及答案整理大全

    Oracle最新面試題及答案整理大全

    好久沒(méi)有給大家發(fā)面試題了,最近收集了一套Oracle的面試題,特地整理出來(lái)分享給大家,這篇文章主要給大家介紹了關(guān)于Oracle最新面試題及答案整理大全的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • Oracle三種循環(huán)(For、While、Loop)實(shí)現(xiàn)九九乘法表

    Oracle三種循環(huán)(For、While、Loop)實(shí)現(xiàn)九九乘法表

    這篇文章主要為大家詳細(xì)介紹了Oracle三種循環(huán)For、While、Loop實(shí)現(xiàn)九九乘法表,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • oracle常用sql查詢語(yǔ)句部分集合(圖文)

    oracle常用sql查詢語(yǔ)句部分集合(圖文)

    這篇文章主要介紹了oracle常用sql查詢語(yǔ)句部分,并用圖文并茂的方式為大家進(jìn)程實(shí)例說(shuō)明,需要的朋友可以參考下
    2013-08-08
  • Oracle數(shù)據(jù)庫(kù)數(shù)據(jù)丟失恢復(fù)的幾種方法總結(jié)

    Oracle數(shù)據(jù)庫(kù)數(shù)據(jù)丟失恢復(fù)的幾種方法總結(jié)

    相信大家無(wú)論是開(kāi)發(fā)、測(cè)試還是運(yùn)維過(guò)程中,都可能會(huì)因?yàn)檎`操作、連錯(cuò)數(shù)據(jù)庫(kù)、用錯(cuò)用戶、語(yǔ)句條件有誤等原因,導(dǎo)致錯(cuò)誤刪除、錯(cuò)誤更新等問(wèn)題。當(dāng)你捶胸頓足或嚇得腿軟時(shí),肯定希望有辦法來(lái)恢復(fù)這些數(shù)據(jù)。oracle就提供了一些強(qiáng)大的方法或機(jī)制,可以幫到有需要的你。
    2016-12-12

最新評(píng)論

蒲江县| 浦江县| 前郭尔| 平远县| 丰原市| 巩留县| 陵川县| 胶州市| 岳阳市| 湖口县| 温州市| 台州市| 甘谷县| 樟树市| 利辛县| 体育| 莫力| 碌曲县| 巫溪县| 津市市| 晋州市| 信丰县| 台安县| 内黄县| 阳高县| 定陶县| 博乐市| 高密市| 穆棱市| 甘泉县| 连云港市| 五家渠市| 丰都县| 石嘴山市| 靖江市| 乳山市| 宜章县| 洛川县| 广宗县| 汉沽区| 霍城县|