檢測到您已登錄華為云國際站賬號,為了您更好的體驗,建議您訪問國際站服務(wù)網(wǎng)站 http://www.cqfng.cn/intl/zh-cn
不再顯示此消息
什么是存儲過程
動態(tài)調(diào)用存儲過程 動態(tài)調(diào)用存儲過程必須使用匿名的語句塊將存儲過程或語句塊包在里面,使用EXECUTE IMMEDIATE…USING語句后面帶IN、OUT來輸入、輸出參數(shù)。 語法 語法請參見圖1。 圖1 call_procedure::= using_clause子句的語法參見圖2。
動態(tài)調(diào)用存儲過程 動態(tài)調(diào)用存儲過程必須使用匿名的語句塊將存儲過程或語句塊包在里面,使用EXECUTE IMMEDIATE…USING語句后面帶IN、OUT來輸入、輸出參數(shù)。 語法 語法請參見圖1。 圖1 call_procedure::= using_clause子句的語法參見圖2。
動態(tài)調(diào)用存儲過程 動態(tài)調(diào)用存儲過程必須使用匿名的語句塊將存儲過程或語句塊包在里面,使用EXECUTE IMMEDIATE…USING語句后面帶IN、OUT來輸入、輸出參數(shù)。 語法 語法請參見圖1。 圖1 call_procedure::= using_clause子句的語法參見圖2。
訪問對象 未指定SCHEMA的存儲過程將依據(jù)SEARCH_PATH的順序查找對象,可能導(dǎo)致訪問到非預(yù)期對象。如果不同模式中存在同名表、存儲過程以及其他數(shù)據(jù)庫對象,未明確指定SCHEMA可能引發(fā)意外結(jié)果。因此,建議在存儲過程訪問數(shù)據(jù)對象時,始終明確指定SCHEMA。 示例: --創(chuàng)建兩個不同的schema。
訪問對象 未指定SCHEMA的存儲過程將依據(jù)SEARCH_PATH的順序查找對象,可能導(dǎo)致訪問到非預(yù)期對象。如果不同模式中存在同名表、存儲過程以及其他數(shù)據(jù)庫對象,未明確指定SCHEMA可能引發(fā)意外結(jié)果。因此,建議在存儲過程訪問數(shù)據(jù)對象時,始終明確指定SCHEMA。 示例: --創(chuàng)建兩個不同的schema。
1.存儲過程存儲過程(Stored Procedure)是一組為了完成特定功能的SQL語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫中,用戶通過指定存儲過程的名字并給定參數(shù)(如果該存儲過程帶有參數(shù))來調(diào)用執(zhí)行它。 2.MySQL存儲過程創(chuàng)建 1.語法#創(chuàng)建存儲過程CREATE PROCEDURE
存儲過程的使用 創(chuàng)建主賬號 域賬號授權(quán)SSIS 部署SSIS工程 修改自定義數(shù)據(jù)庫名稱 查看錯誤日志 跟蹤標(biāo)記 變更數(shù)據(jù)捕獲(CDC) 將自定義數(shù)據(jù)庫移出可用性組 數(shù)據(jù)庫復(fù)制 限制子賬戶只能看到具有權(quán)限的數(shù)據(jù)庫清單 刪除自定義數(shù)據(jù)庫 更新數(shù)據(jù)庫統(tǒng)計信息 SQL Server agent錯誤日志輪轉(zhuǎn)
可完成所有的數(shù)據(jù)庫操作,也可控制數(shù)據(jù)庫的信息訪問權(quán)限為什么要用存儲過程?1.減輕網(wǎng)絡(luò)負載;2.增加安全性二、創(chuàng)建存儲過程2.1 創(chuàng)建基本過程使用create procedure語句創(chuàng)建存儲過程存儲過程的主體部分,被稱為過程體;以begin開始,以end$$結(jié)束#聲明語句結(jié)束符,可以自定義: delimiter $$
數(shù)據(jù)庫復(fù)制 操作場景 使用存儲過程,備份某個數(shù)據(jù)庫,并恢復(fù)成一個新的數(shù)據(jù)庫。 前提條件 成功連接RDS for SQL Server實例。關(guān)于連接華為云關(guān)系型數(shù)據(jù)庫實例,請參考連接實例。 執(zhí)行此存儲過程的必須是擁有[CREATE ANY DATABASE]權(quán)限的用戶。如果不具備此
語句集合。使用存儲過程的目的是將常用或復(fù)雜的工作預(yù)先用 SQL 語句寫好并用一個指定名稱存儲起來,這個過程經(jīng)編譯和優(yōu)化后存儲在數(shù)據(jù)庫服務(wù)器中,因此稱為存儲過程。當(dāng)以后需要數(shù)據(jù)庫提供與已定義好的存儲過程的功能相同的服務(wù)時,只需調(diào)用“CALL存儲過程名字”即可自動完成。常用操作數(shù)據(jù)庫的 SQL
辛孚原油數(shù)據(jù)庫涵蓋全球6大產(chǎn)區(qū)80多個國家超過多種原油詳細數(shù)據(jù),可以提供每種原油5℃窄餾分的收率與86項性質(zhì)的完整評價數(shù)據(jù)。辛孚原油數(shù)據(jù)庫涵蓋全球6大產(chǎn)區(qū)80多個國家超過多種原油詳細數(shù)據(jù),可以提供每種原油5℃窄餾分的收率與86項性質(zhì)的完整評價數(shù)據(jù)。原油數(shù)據(jù)庫還提供每種原油的詳細分
DROP SCHEMA 在創(chuàng)建存儲過程時,避免在不同變量作用域內(nèi)使用相同名稱的變量和類型,變量作用域的具體內(nèi)容請參見《開發(fā)指南》中“存儲過程 > 基本語句 > 定義變量”章節(jié)中“變量作用域”。在不同變量作用域內(nèi)使用相同名稱的變量和類型,可能會降低存儲過程的可讀性,并增加其維護難度。
事務(wù) 存儲過程可以通過使用SAVEPOINT以及COMMIT/ROLLBACK來進行事務(wù)管理,如果使用不當(dāng),可能會引發(fā)以下問題: 每次在事務(wù)中創(chuàng)建SAVEPOINT都會分配資源,若不及時釋放,資源占用將逐漸累積。 事務(wù)的COMMIT和ROLLBACK操作需要同步數(shù)據(jù)庫的元數(shù)據(jù)和日志
1)存儲過程是預(yù)編譯過的,執(zhí)行效率高。2)存儲過程的代碼直接存放于數(shù)據(jù)庫中,通過存儲過程名直接調(diào)用,減少網(wǎng)絡(luò)通訊。3)安全性高,執(zhí)行存儲過程需要有一定權(quán)限的用戶。4)存儲過程可以重復(fù)使用,可減少數(shù)據(jù)庫開發(fā)人員的工作量。
存儲過程最佳實踐(分布式) 商業(yè)規(guī)則和業(yè)務(wù)邏輯可以通過程序存儲在GaussDB中,這個程序就是存儲過程。 存儲過程是SQL、PL/SQL和Java語句的組合。存儲過程使執(zhí)行商業(yè)規(guī)則的代碼可以從應(yīng)用程序中移動到數(shù)據(jù)庫。從而,代碼存儲一次能夠被多個程序使用。 存儲過程的基本使用方法請參見《開發(fā)指南》中“存儲過程”章節(jié)。
存儲過程最佳實踐(集中式) 商業(yè)規(guī)則和業(yè)務(wù)邏輯可以通過程序存儲在GaussDB中,這個程序就是存儲過程。 存儲過程是SQL和PL/SQL的組合。存儲過程使執(zhí)行商業(yè)規(guī)則的代碼可以從應(yīng)用程序中移動到數(shù)據(jù)庫。從而,代碼存儲一次能夠被多個程序使用。 存儲過程的基本使用方法請參見《開發(fā)指南》中“存儲過程”章節(jié)。
事務(wù)管理 事務(wù) 自治事務(wù) 父主題: 存儲過程最佳實踐(集中式)
在使用DRS創(chuàng)建存儲過程時,它會使用數(shù)據(jù)庫的默認編碼格式。數(shù)據(jù)庫的默認編碼格式是在數(shù)據(jù)庫創(chuàng)建時設(shè)置的,并且通常是根據(jù)數(shù)據(jù)庫管理系統(tǒng)的默認設(shè)置或根據(jù)用戶的配置進行設(shè)置的。默認編碼格式?jīng)Q定了數(shù)據(jù)庫中存儲的字符數(shù)據(jù)的編碼方式。當(dāng)使用DRS創(chuàng)建存儲過程時,它會繼承數(shù)據(jù)庫的默認編碼格式。這
生命周期覆蓋整個數(shù)據(jù)庫會話(SESSION)。不當(dāng)使用可能引發(fā)以下問題: 對具備PACKAGE訪問權(quán)限的用戶完全透明,可能導(dǎo)致變量在多個存儲過程間共享并意外被修改。 由于PACKAGE變量的生命周期為SESSION級別,不當(dāng)操作可能造成數(shù)據(jù)殘留,影響其他存儲過程。 大量PACKA