當前位置:首頁 » 服務存儲 » oracle禁用某個存儲過程
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle禁用某個存儲過程

發布時間: 2022-09-26 19:13:39

Ⅰ oracle存儲過程問題,謝謝了

oracle里,取余用的是 mod,而不是 %,另外還要去掉 begin,end,樓主剛從sql轉oracle吧
if mod(v_n.numb,2)=0 then
null; update A set numb=2*v_n.numb;
else

update A set numb=v_n.numb;
end if;

Ⅱ oracle 怎樣禁用某個對象的所有觸發器——注意不是某個表

--禁用
alter table [tablename]
disable all trigger

--恢復
alter table [tablename]
enable all trigger
如果你想禁用資料庫中所有的觸發器,那你只能寫存儲過程實現,找出所有的表,然後逐一禁用

Ⅲ 如何在oracle中指定某個存儲過程的修改、執行許可權給另一用戶

不能調用存儲過程,調用存儲過程需要execute any procere 許可權才行。
CONNECT角色: --是授予最終用戶的典型權利,最基本的
ALTER SESSION --修改會話
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立資料庫鏈接
CREATE SEQUENCE --建立序列
CREATE SESSION --建立會話
CREATE SYNONYM --建立同義詞
CREATE VIEW --建立視圖

Ⅳ 誰能介紹如何修改一個Oracle存儲過程的實際操作步驟

以下是介紹如何修改一個Oracle存儲過程的實際操作步驟,如果你要執行Oracle存儲過程,首先你需要寫出一個關於輸出的字元串「Hello World!」的存儲過程,以下的相關內容就是接這講述Oracle存儲的步驟。

讓我們寫一個輸出字元串「Hello World!」的存儲過程,用Notepad打開你的skeleton.sql 文件,. 用DBMS_OUTPUT.PUT_LINE 過程調用去替換NULL語句,如下所示:

CREATE OR REPLACE PROCEDURE skeleton
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World!');
END;

保存到文件skeleton.sql.

從SQL*Plus命令行, 打開文件skeleton.sql .

SQL> @skeleton
SQL>
CREATE OR REPLACE PROCEDURE skeleton
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World!');
* END;
SQL> /

SQL*Plus 通知你存儲過程成功創建並輸出提示信息:Procere created.

SQL>

用EXECUTE 命令運行你的存儲過程:

SQL> EXECUTE skeleton;
SQL*Plus顯示存儲過程運行成功:

PL/SQL procere successfully completed.

我們想要的輸出字元串 "Hello World!"沒有出來,在顯示一個DBMS_OUTPUT.PUT_LINE 結果前需要運行一個SET命令,在SQL*Plus 命令行提示符,鍵入:

SQL> SET SERVEROUTPUT ON
再次執行你的存儲過程:

SQL> EXECUTE skeleton;
現在結果輸出了:

Hello World!
PL/SQL procere successfully completed.
當調試一個存儲過程時,遵循一樣的步驟,修改SQL文件,創建存儲過程,執行存儲過程,根據編譯器反饋的出錯信息進行修改,這一步是非常繁瑣的,需要依靠經驗。

在實際的商用存儲過程的開發調試過程中,由於涉及很多表、類型、游標、循環、條件等復雜的邏輯,和PL/SQL語句的靈活運用,編譯時會產生很多錯誤提示信息,程序員在根據這些錯誤信息定位,進行修正,再編譯最後得到正確的結構;

放棄一個Oracle存儲過程

如果在資料庫中你不在需要一個存儲過程你可以刪除它,SQL語句 DROP PROCEDURE 完成從資料庫中刪除一個存儲過程,DROP PROCEDURE 在SQL中被歸類為數據定義語言(DDL) 類操作,其他的例子有CREATE, ALTER, RENAME 和TRUNCATE。.

在SQL*Plus 命令提示符下,使用DROP PROCEDURE SQL 語句刪除你的叫做skeleton的存儲過程:

SQL> DROP PROCEDURE skeleton;
SQL*Plus assures us the procere has been removed:
Procere dropped.

本文詳細討論了如何使用Oracle工具開發Oracle存儲過程的步驟。最後在存儲過程的使用中可能是程序直接調用,也可能被觸發器調用。

希望我的回答能對您有所幫助!!!

Ⅳ oracle 過濾包含有某個欄位的存儲過程

用not in 就行了
sql select * from table where 性質 not in (1),如果還想慮過什麼,直接在1後面加上就行了。

Ⅵ oracle 無法執行存儲過程。急急急。

exec test1

修改為

begin

test1();

end

例如:

SQL>
2testvalue1VARCHAR2(20);
3testvalue2VARCHAR2(20);
4BEGIN
5dbms_output.put_line('HelloWorld');
6testvalue1:='FirstTest!';
7SELECT'SecondTest!'INTOtestvalue2FROMDUAL;
8dbms_output.put_line(testvalue1||testvalue2);
9ENDHelloWorld;
10/
過程已創建。


SQL>setserveroutputon
SQL>


SQL>BEGIN
2HelloWorld();
3END;
4/
HelloWorld
FirstTest!SecondTest!
PL/SQL過程已成功完成。

Ⅶ oracle 如何終止存儲過程的運行!

select * from v$access a where object like '存儲過程名%' --存儲過程名為大寫字母
select * from v$session where sid=74 --74為上一個查詢得到的SID值,可能是多個,這里找到他們對應的serial#值
alter system kill session '74,118' --參數為'sid,serial#',用於停止這個回話,同時也終止了存儲過程