oracle執行遠程資料庫存儲過程
創建存儲過程的語句如下:
CREATE[OR REPLACE] PROCEDURE<過程名>
<參數1>,「方式l]<數據類型1>,
<參數2>,[ 方式2]<數據類型2>,
……)
IS|AS (is或as完全等價)
BEGIN
PL/sql過程體
END<過程名>
例如,下面是一個刪除表的存儲過程:
--參數:tableName 要刪除的表名
create or replace procere del_table(tableName varchar2) as
--定義變數
sql_del_table long;
begin
--構造sql語句
sql_del_table := 'drop table ' || tableName;
--執行
EXECUTE IMMEDIATE sql_del_table;
end del_table;
Ⅱ 通過oracle dblink,怎麼執行遠程資料庫的存儲過程。或者說可以執行嗎怎麼弄
能不能執行存儲過程取決於你的dblink那個資料庫的用戶的許可權,比如你這邊的資料庫用戶A,是另外一個資料庫的dblink用戶,那麼另外那個資料庫的用戶是利用A用戶進行操作的。一般都是select,執行存儲過程什麼的,是看的A的許可權。
不過我要梯形下,就選你insert,提示成功,可是實際並咩有插入,因為insert後,那個dblink的session就已經關閉了,commit並不能確認。所以我們一般是通過遠程式控制制存儲過程解決的這個問題。
Ⅲ 請問oracle怎麼執行存儲過程
我試驗過了,就是exec 存儲過程名或者execute 存儲過程名(參數),請你在仔細確認一下,你的存儲過程名寫沒寫對呀,或者你沒有進入sqlplus中?
----
以上,希望對你能有幫助。
Ⅳ oracle怎麼執行存儲過程
sqlplus或者PL/SQL SQL窗口
輸入(單獨調用存儲過程):
無參數
EXEC 過程名;
或者
BEGIN
過程名
END;
IN 參數
EXEC 過程名(入參數..);
或者
BEGIN
過程名(入參數...)
END;
OUT參數,IN OUT參數
variable 綁定變數名 數據類型; //定義一個變數接收出參數的值;
EXEC 過程名(:綁定變數名);
Ⅳ oracle資料庫調用存儲過程
這個需要分情況的
如果是在應用程序(Java等)中調用存儲過程,需要根據相應語言的語法來進行。這個可以通過查找相應語言的幫助來找到。
如果是在Oracle的其他存儲過程中調用,直接寫存儲過程名就可以了。傳入相應的參數,即可執行。
如果在Oracle的命令行中,使用EXEC
存儲過程名(參數)
的方式即可調用。
如果存儲過程執行的語句寫在SQL文件中,則可以通過調用文件的方式執行,即
SQL>
@D:\SQL\example.sql的形式
Ⅵ oracle 通過dblink訪問遠程存儲過程,返回遊標到本地
存儲過程後加@dblink就行了,前提是dblink里那個user要有遠程資料庫存儲過程的執行許可權的,而且返回的數據也是遠程資料庫的數據。比如你遠程存儲過程是個函數,名字是fun,調用時就用fun@your_dblink(.....) 就行了。具體例子現在沒時間寫了,抱歉
