儲存過程是否可以操作不同庫內的資料?可舉例

2022-03-18 15:20:32 字數 787 閱讀 1065

今天在開發過程中遇到兩個問題:

1.如何呼叫別人資料庫的儲存過程?

2.如何呼叫自己資料庫不同使用者下的儲存過程?

經過網上搜尋資料和自己的不斷測試,終於成功了,現記錄下來,以便資源共享。

首先,如果是呼叫別人的資料庫的儲存過程,首先你得先跟別人的資料庫建立乙個dblink(如何建立,在此不進行描述),

其次,別人資料庫的儲存過程要給你的使用者賦予一定的許可權。

比如,我測試時候的資料,

up_if_stocksenddiyok是別人資料庫裡面的儲存過程的名字;

imes_link是建立的dblink;

(porderkey,puserid,pusername,pdate)是呼叫儲存過程時傳入的引數。

如果是自己測試的話,可以通過命令視窗(我使用的是plsql工具)輸入:exec  up_if_stocksenddiyok@imes_link(porderkey,puserid,pusername,pdate);回車即可;

如果通過儲存過程呼叫的話,直接輸入 up_if_stocksenddiyok@imes_link(porderkey,puserid,pusername,pdate);即可。

如果是呼叫自己資料庫不同使用者下的儲存過程,首先要給使用者賦予對應的許可權:

grant execute(或者是all)儲存過程名字(如有包的話,要先把包名賦予許可權)for 使用者。

比如:我有兩個使用者user1和user2,現在我想通過user1呼叫user2下面pro_test儲存過程,語句為:grant execute pro_test for user1.

可以動態分頁的儲存過程

可以動態分頁的儲存過程 一位朋友介紹的方法 cretate procedure oguess commonpaging tablename varchar 50 tablefield varchar 20 where varchar 100 orderby varchar 100 curpage i...

儲存過程的理解與操作

儲存過程 類似函式 批量處理 1 為什麼使用 mysql伺服器在快取機制做了改進,使用類似預處理的那種方式,由於沒有編譯器,因此mysql儲存過程不會像外部語言 c 編寫的程式執行的那麼快。提公升速度最主要的方法有兩種 降低網路的資訊流量,減少使用者與伺服器之間的互動 因為儲存過程是在伺服器端執行,...

JDBC操作簡單的儲存過程

執行儲存過程 author john public class procedure string sql try catch sqlexception e finally 這是乙個簡單的儲存過程 create procedure addid 建立儲存過程,名字為addid in pusername ...