oracle存儲過程刪除
❶ oracle 存儲過程 刪除序列 在 創建序列
看著沒問題,自己照你的打了一遍,也可以編譯過去。不行你復制我的試試:
sql">createorreplaceprocereacer_seq_resetas
tsqlvarchar2(100);
begin
tsql:='dropsequenceacer_seq';
executeimmediatetsql;
tsql:='createsequenceacer_';
executeimmediatetsql;
end;
❷ oracle:關於存儲過程動態刪除
把dbms列印結果,以及REGISTRATION_NO的值都發出來看看
❸ 怎麼樣利用存儲過程實現(oracle )的添加、刪除、查詢、修改啊
列個表,里邊我一樣給你寫個例子,你看著學學,我盡量給你做出注釋
--建一個學生表
create table student (id int,name varchar2(10));
--插入兩條測試數據
insert into student values (1,'張三');
insert into student values (2,'李四');
commit;
-------------用存儲過程添加id為3,姓名為王五的學生-----------
create or replace PROCEDURE P_INSERT
(v_id int,--定義id變數
v_name varchar2--定義姓名變數)
is
begin
insert into student values (v_id,v_name);--執行插入操作
commit;
end;
執行的時候用下邊的
BEGIN
p_insert(3,'王五');
END;
然後select * from student;
你會發現多了3 王五 這條數據
---------------用存儲過程刪除id為3的學生------------
create or replace PROCEDURE P_DELETE
(v_id int)--定義變數id
is
begin
delete from student where id=v_id;--執行刪除操作
commit;
end;
執行
BEGIN
p_delete(3);
END;
執行完上邊後執行
select * from student;
你會發現id為3的學生沒了
---------------用存儲過程查詢id為2的學生姓名------------
create or replace PROCEDURE P_SELECT
(v_id int)--定義輸入變數id
is
v_name varchar2(10);--定義輸出變數name
begin
select name into v_name from student where id=v_id;--執行查詢
dbms_output.put_line('學生姓名為:'||v_name);--輸出結果
end;
執行
BEGIN
p_select(2);
END;
輸出的結果就是id為2的學生姓名
-----------用存儲過程查詢id為1的學生姓名修改為趙六----------
create or replace PROCEDURE P_UPDATE
(v_id int,--定義要修改的id
v_name varchar2)--定義要修改後的名字
is
begin
update student set name=v_name where id=v_id;--執行修改操作
commit;
end;
執行
BEGIN
P_UPDATE(1,'趙六');
END;
然後你再
select * from student;
你會發現id為1的已經為趙六了
上邊這些都是最簡單的存儲過程,在實際過程中肯定沒這么簡單
還有,我讓你執行的
BEGIN
P_UPDATE(1,'趙六');
END;
這種東西可以當做oracle的job調用,可以定時執行
再有不懂的你再問吧,上邊的僅做參考
累死我了,哈哈
❹ oracle存儲過程刪除序列和新建序列
創建序列的時候,你試試這樣,假使你想每次得到的1:
CREATE SEQUENCE temp_sequence
INCREMENT BY 1 -- 每次加1
START WITH 1 -- 從1開始計數,這里自己調一下,沒測試,不行就寫0
MAXVALUE 1-- 最大值1
CYCLE -- 循環
NOCACHE; 不緩沖
這樣不需要每次都建了,一次就OK了
❺ oracle怎麼刪除存儲過程,函數,觸發器,的語句
drop procere p_p1;
drop function f_p1;
drop trigger tri_table;
❻ Oracle 存儲過程 刪除表記錄時刪除不存在的記錄也是顯示刪除成功
刪除不存在的數據並不會促發Oracle的異常
對於delete from dept where deptno=p_deptno;
判斷是否有數據被刪除可以用sql%rowcount,sql%notfound 來判斷
if sql%rowcount = 0 then
dbms_output.put_line('部門刪除失敗...');
end if;
或者
if sql%notfound then
dbms_output.put_line('部門刪除失敗...');
end if;
❼ oracle 通過存儲過程 刪除一張表的n天前的數據。
delete from a_b_c_123 where "日期"=(
select 「日期" from a_b_c_123
where "日期=N天")
以上語句能看懂吧?最後一句可以換變數,然後整個寫作存儲過程
❽ 求一個oracle的批量刪除的存儲過程
declarecursorc1isselect*fromtable_A;
li_linenonumber(8);
begin
li_lineno:=1;
fortinc1loop
deletefromtable_Awherexbie00='1';
ifmod(li_lineno,1000)=0then
commit;
endif;
li_lineno:=li_lineno+1;
endloop;
end;
/
❾ ORACLE創建一個存儲過程(刪除指定數據)
sql_dl='delete from report_data t where t.address in ('廣東省')'
這行雙重單引號,你不覺得有問題嗎?需要轉義一下。
還有個問題,你的這條sql明明可以不用in的,是還有別的省份沒寫進來嗎?如果沒有別的省份,建議使用=而不要用in,因為in與=的性能差距可是很大的,數據量越大,性能差距越明顯。
❿ oracle存儲過程刪除了很久都刪不掉怎麼辦
存儲過程刪不掉,你查下session,很可能是會話在調用你在刪的過程,把調用存儲過程對應的session殺掉就可以了