国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

oracle與mysql的存儲區(qū)別

這篇具有很好參考價值的文章主要介紹了oracle與mysql的存儲區(qū)別。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.創(chuàng)建存儲過程語句不同

oracle

create or replace procedure P_ADD_FAC(
   id_fac_cd  IN ES_FAC_UNIT.FAC_CD%TYPE)  as

復制

mysql

DROP PROCEDURE IF EXISTS `SD_USER_P_ADD_USR`;
create procedure P_ADD_FAC(
       id_fac_cd  varchar(100))

復制

1.在創(chuàng)建存儲過程時如果存在同名的存儲過程,會刪除老的存儲過程. oracle使用create or replace. mysql使用先刪除老的存儲過程,然后再創(chuàng)建新的存儲過程. 2. oracle 存儲過程可以定義在package中,也可以定義在Procedures中. 如果定義在包中,一個包中可以包含多個存儲過程和方法.如果定義在Procedures中,存儲過程中不可以定義多個存儲過程. Mysql 存儲過程中不可以定義多個存儲過程. 3. oracle中字符串類型可以使用varchar2. Mysql 需要使用varchar 4. Oracle中參數(shù)varchar長度不是必須的, Mysql中參數(shù)varchar長度是必須的, 比如varchar(100)

2,創(chuàng)建函數(shù)語句不同

oracle

CREATE OR REPLACE FUNCTION F_ROLE_FACS_GRP(
     ii_role_int_key IN SD_ROLE.ROLE_INT_KEY%TYPE
    ) RETURN VARCHAR2

復制

mysql

DROP FUNCTION IF EXISTS `SD_ROLE_F_ROLE_FACS_GRP`;
CREATE  FUNCTION `SD_ROLE_F_ROLE_FACS_GRP`(
 ii_role_int_key INTEGER(10)
) RETURNS varchar(1000) 

復制

1.在創(chuàng)建函數(shù)時如果存在同名的函數(shù),會刪除老的函數(shù). oracle使用create or replace. mysql使用先刪除老的函數(shù),然后再創(chuàng)建新的函數(shù). 2. oracle 函數(shù)可以定義在package中,也可以定義在Functions中. 如果定義在包中,一個包中可以包含多個存儲過程和函數(shù).如果定義在Functions中,每個函數(shù)只能定義一個函數(shù). Mysql Functions不可以定義多個函數(shù). 3. oracle返回值用return. Mysql返回值用returns.

3.傳入?yún)?shù)寫法不同

oracle

 1.   procedure P_ADD_FAC(
       id_fac_cd  IN ES_FAC_UNIT.FAC_CD%TYPE)
       
2.    function func_name(
               gw_id  in(out)  varchar2 )

復制

mysql

1.create procedure P_ADD_FAC(
     (in) id_fac_cd  varchar(100))


2.create function func_name(
   gw_id varchar(100))

復制

  1. oracle存儲過程參數(shù)可以定義為表的字段類型. Mysql存儲過程不支持這種定義方法.需要定義變量的實際類型和長度.
  2. oracle 參數(shù)類型in/out/inout寫在參數(shù)名后面. Mysql 參數(shù)類型in/out/inout寫在參數(shù)名前面.
  3. oracle 參數(shù)類型in/out/inout 都必須寫. Mysql 參數(shù)類型如果是in,則可以省略. 如果是out或inout則不能省略. 注意: mysql中指定參數(shù)為IN, OUT, 或INOUT 只對PROCEDURE是合法的。(FUNCTION參數(shù)總是被認為是IN參數(shù)) RETURNS字句只能對FUNCTION做指定,對函數(shù)而言這是強制的。它用來指定函數(shù)的返回類型,而且函數(shù)體必須包含一個RETURN value語句。

4.包的聲明方式

oracle

create or replace package/package body package name

復制

mysql

拆分成多個存儲過程或函數(shù)

oracle可以創(chuàng)建包,包中可以包含多個存儲過程和方法. mysql沒有沒有包這個概念,可以分別創(chuàng)建存儲過程和方法. 每個存儲過程或方法都需要放在一個文件中. 例1: 方法命名 oracle 中SD_FACILITY_PKG.F_SEARCH_FAC to mysql SD_FACILITY_F_SEARCH_FAC 例2: 過程命名 oracle 中SD_FACILITY_PKG.P_ADD_FAC to mysql SD_FACILITY_P_ADD_FAC

5.存儲過程返回語句不一樣

oracle

return;	

復制

mysql

LEAVE proc; (proc 代表最外層的begin end)

復制

oracle存儲過程和方法都可以使用return退出當前過程和方法. Mysql存儲過程中只能使用leave退出當前存儲過程.不可以使用return. Mysql方法可以使用return退出當前方法.

6.存儲過程異常處理不一樣

oracle

EXCEPTION
    WHEN OTHERS THEN
    ROLLBACK ;
    ov_rtn_msg := c_sp_name||'('|| li_debug_pos ||'):'||
        TO_CHAR(SQLCODE)||': '||SUBSTR(SQLERRM,1,100);

復制

mysql

DECLARE EXIT HANDLER FOR  SQLEXCEPTION 
 BEGIN
    ROLLBACK ;
    set ov_rtn_msg = concat(c_sp_name,'(', li_debug_pos ,'):',
        TO_CHAR(SQLCODE),': ',SUBSTR(SQLERRM,1,100));
 END;

復制

oracle : 內(nèi)部異常不需要定義,在存儲過程或函數(shù)末尾寫上EXCEPTION后,后面的部分即為異常處理的部分. oracle可以定義自定義異常,自定義異常需要使用raise關(guān)鍵字拋出異常后,才可以在EXCEPTION中捕獲.

mysql: mysql內(nèi)部異常也需要先定義,在定義的同時也需要實現(xiàn)異常的功能. 目前mysql不支持自定義異常.

7.過程和函數(shù)的聲明變量的位置不同

oracle

聲明變量在begin…end體之前

復制

mysql

聲明變量在begin...end體內(nèi),begin之后其他任何內(nèi)容之前

復制

8.NO_DATA_FOUND異常處理

oracle

 EXCEPTION
        WHEN NO_DATA_FOUND THEN
            oi_rtn_cd := 1;
            ov_rtn_msg := SD_COMMON.P_GET_MSG('DP-CBM-01100a-016',
                                                 li_sub_rtn_cd,
                                                 lv_sub_rtn_msg
                                                 );

復制

mysql

使用FOUND_ROWS()代替NO_DATA_FOUND. 詳見注釋.

復制

oracle中: NO_DATA_FOUND是游標的一個屬性. 當select沒有查到數(shù)據(jù)就會出現(xiàn) no data found 的異常,程序不會向下執(zhí)行.

Mysql: 沒有NO_DATA_FOUND這個屬性.但可是使用FOUND_ROWS()方法得到select語句查詢出來的數(shù)據(jù).如果FOUND_ROWS()得到的值為0,就進入異常處理邏輯.

9.在存儲過程中調(diào)用存儲過程方式的不同

oracle

Procedure_Name(參數(shù));

復制

mysql

Call Procedure_Name(參數(shù));

復制

MYSQL存儲過程調(diào)用存儲過程,需要使用Call pro_name(參數(shù)). Oracle調(diào)用存儲過程直接寫存儲過程名就可以了.

10拋異常的方式不同

oracle

RAISE Exception_Name;

復制文章來源地址http://www.zghlxwxcb.cn/news/detail-471902.html

到了這里,關(guān)于oracle與mysql的存儲區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Oracle和MySQL有哪些區(qū)別?從基本特性、技術(shù)選型、字段類型、事務(wù)、語句等角度詳細對比Oracle和MySQL

    Oracle和MySQL有哪些區(qū)別?從基本特性、技術(shù)選型、字段類型、事務(wù)、語句等角度詳細對比Oracle和MySQL

    ?導航: 【Java筆記+踩坑匯總】Java基礎(chǔ)+進階+JavaWeb+SSM+SpringBoot+瑞吉外賣+SpringCloud+黑馬旅游+谷粒商城+學成在線+MySQL高級篇+設(shè)計模式+面試題匯總+源碼_vincewm的博客-CSDN博客 目錄 一、基本區(qū)別 1.1 基本特性 1.2 Oracle和MySQL如何做技術(shù)選型? 1.3 RDBMS和ORDBMS的區(qū)別 1.4 默認端口號和用

    2024年02月12日
    瀏覽(21)
  • mysql:存儲過程的創(chuàng)建與使用

    mysql:存儲過程的創(chuàng)建與使用

    一、創(chuàng)建存儲過程 使用MySql Workbench創(chuàng)建存儲過程,一定要記得使用 delimiter 指明結(jié)束符,否則會報錯:Statement is incomplete, expecting: \\\';’ 錯誤示例: 正確示例: 其中,//就是結(jié)束符,可以自行指定,比如一般都用$$。 二、存儲過程語法 這里就不照搬官方的語法了,按照我的理

    2024年02月09日
    瀏覽(22)
  • Mysql 創(chuàng)建存儲過程和函數(shù)及各種例子

    Mysql 創(chuàng)建存儲過程和函數(shù)及各種例子

    1.1.1 語法結(jié)構(gòu) 無參的存儲過程 有參數(shù)的存儲過程 刪除存儲過程: 1.1.2 簡單解釋 部分語法簡單介紹: delimiter $$ $$ 是分隔符,用其他符號也行,比如一個 $ 或者 // 等 定義變量: DECLARE 例子: @符號 使用 SET 直接賦值變量,變量名以 @ 開頭:如: set @dogNum = 1002; 其他使用例子如

    2024年02月06日
    瀏覽(17)
  • MySQL系列(九)存儲過程的創(chuàng)建和使用

    MySQL系列(九)存儲過程的創(chuàng)建和使用

    (1)利用預處理sql語句輸出teacher表中前n行記錄,執(zhí)行預處理命令時具體輸出前5行的數(shù)據(jù)。 (2)利用預處理sql語句,更改course表中課程號為c05109的課程名稱為“數(shù)據(jù)庫系統(tǒng)原理”。 (3)創(chuàng)建存儲過程update_email,修改student表中姓名為‘封月明’的學生的email為‘feng@qq.com’。

    2024年02月13日
    瀏覽(22)
  • 【?MySQL | 存儲過程與函數(shù)】概述 | 創(chuàng)建 | 調(diào)用 | 查看 | 修改 | 刪除 | 爭議

    ?歡迎來到小K的MySQL專欄,本節(jié)將為大家?guī)鞰ySQL存儲過程與函數(shù)概述 | 創(chuàng)建 | 調(diào)用 | 查看 | 修改 | 刪除 | 爭議的分享 ? MySql從5.0版本開始支持存儲過程和函數(shù),存儲過程和函數(shù)能夠?qū)碗s的SQL邏輯封裝在一起,應用程序無須關(guān)注存儲過程和函數(shù)內(nèi)部復雜的SQL邏輯,而只需要

    2024年02月10日
    瀏覽(40)
  • MySQL數(shù)據(jù)庫——存儲過程-介紹以及基本語法(特點、創(chuàng)建、調(diào)用、查看、刪除、示例)

    MySQL數(shù)據(jù)庫——存儲過程-介紹以及基本語法(特點、創(chuàng)建、調(diào)用、查看、刪除、示例)

    目錄 介紹 特點 基本語法 創(chuàng)建 調(diào)用 查看 刪除? 示例? 存儲過程是 事先經(jīng)過編譯 并 存儲在數(shù)據(jù)庫 中的一段 SQL 語句的 集合 ,調(diào)用存儲過程可以簡化應用開發(fā)人員的很多工作,減少數(shù)據(jù)在數(shù)據(jù)庫和應用服務(wù)器之間的傳輸,對于提高數(shù)據(jù)處理的效率是有好處的。 存儲過程思想

    2024年02月06日
    瀏覽(100)
  • MySQL強制使用索引的兩種方式及優(yōu)化索引,使用MySQL存儲過程創(chuàng)建測試數(shù)據(jù)。

    MySQL強制使用索引的兩種方式及優(yōu)化索引,使用MySQL存儲過程創(chuàng)建測試數(shù)據(jù)。

    一、MySQL強制使用索引的兩種方式 1、使用 FORCE INDEX 語句: 使用 FORCE?INDEX(索引名稱)走索引: 2、使用 USE INDEX 語句: 使用 USE INDEX(索引名稱)走索引: FORCE INDEX 或 USE INDEX?的區(qū)別? FORCE INDEX :這個語句指示MySQL強制查詢使用特定的索引。它會忽略優(yōu)化器的選擇,無論索引

    2024年02月03日
    瀏覽(25)
  • 數(shù)據(jù)庫系統(tǒng)原理及MySQL應用教程實驗七存儲過程與函數(shù)的創(chuàng)建管理

    數(shù)據(jù)庫系統(tǒng)原理及MySQL應用教程實驗七存儲過程與函數(shù)的創(chuàng)建管理

    1. 理解存儲過程和函數(shù)的概念。 2. 掌握創(chuàng)建存儲過程和函數(shù)的方法。 3. 掌握執(zhí)行存儲過程和函數(shù)的方法。 4. 掌握游標的定義、使用方法。 1.驗證性實驗:某超市的食品管理的數(shù)據(jù)庫的Food表對其操作。 2.設(shè)計性試驗:學校教師管理數(shù)據(jù)庫中的teacherInfo表對其操作。 三、實驗步

    2024年02月03日
    瀏覽(23)
  • oracle存儲過程(基礎(chǔ)語法)

    ????????存儲過程(Stored Procedure )是一組為了完成特定功能的SQL 語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫中。用戶通過指定存儲過程的名字并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。存儲過程是數(shù)據(jù)庫中的一個重要對象,任何一個設(shè)計良好的數(shù)據(jù)庫應用程序都應該用到存儲過

    2023年04月08日
    瀏覽(20)
  • Oracle存儲過程~封神之路

    Oracle存儲過程~封神之路

    Oracle 存儲過程是 Oracle 數(shù)據(jù)庫中的一種數(shù)據(jù)處理對象,它可以在數(shù)據(jù)庫中定義一組預定義的 SQL 語句,用于完成特定的數(shù)據(jù)庫操作。存儲過程可以被授權(quán)的用戶調(diào)用,并且可以執(zhí)行多個語句,這些語句可以被視為一個單獨的操作,也可以被視為一系列的操作。 使用存儲過程可

    2024年02月04日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包