回滾操作儲存過程

2021-05-18 07:50:03 字數 1632 閱讀 4896

create or replace procedure roll_tab as

v_tab      varchar2(3000);

v_roll_tab varchar2(3000);

v_sql varchar2(1000);

v_sql_01 varchar2(1000);

cursor cur_tab is

select table_name from user_tables where table_name like '%/_k'  escape '/';

begin

open cur_tab;

loop

fetch cur_tab into v_tab;

exit when cur_tab%notfound;

--insert into u02 values(v_tab);

select substr(v_tab,1,length(v_tab)-2) into v_roll_tab from dual;

--insert into u01 values(v_roll_tab);

begin

v_sql_01:='drop view '||v_roll_tab;

--dbms_output.put_line(v_sql_01);

execute immediate  v_sql_01;

exception

when others then

null;

end;

begin

v_sql:='alter table '||v_tab||' rename to ' ||v_roll_tab;

--dbms_output.put_line(v_sql);

execute immediate  v_sql;

exception

when others then

null;

end;

end loop;

close cur_tab;

end;

--在每個執行命令下建立乙個異常捕獲,可以避免由於出現的異常而導致下面的命令不能持續執行。

--begin

-- v_sql_01:='drop view '||v_roll_tab;

--dbms_output.put_line(v_sql_01);

--execute immediate  v_sql_01;

-- exception

--when others then

--null;

-- end;

--區域性的異常處理要有begin......end;

--like '%/_k'  escape '/' (是取出於_k相匹配的字串,用/將萬用字元%與_分開,並由函式escape將/去除。

--substr(v_tab,1,length(v_tab)-2) into v_roll_tab from dual;  

-- substr(字串名,從第乙個字元取,要取多少個字元)

--length(字串名,去掉幾個字元)用來計算某個字串的長度

--過程中不能直接使用ddl語句,要將ddl語句賦予乙個變數,然後動態執行這個sql變數( execute immediate  v_sql;)

Spring jdbc 操作儲存過程

首先我們要用spring 與 jdbc 呼叫儲存過程 step1 spring 與jdbc 整合 原理介紹 我們選用什麼資料來源呢在這裡我們選用c3p0 資料連線池 當然這個連線池也是相對比較成熟的 新增c3p0.jar 包 step 2 配置資料來源 step3 配置spring 與 jdbc整合...

vc mysql 儲存過程 vc 操作儲存過程

1.進行ado程式設計的必備步驟 引入msado15.dll import c program files common files system ado msado15.dll no namespace rename eof adoeof 避免與檔案的結束符號混淆,將eof改為adoeof 當然要...

ADO操作儲存過程(VB)

dim adoconnaction as new adodb.connaction dim adocommand as new adodb.command dim adorecordset as new adodb,recordset dim strconnaction as string 資料庫連...