oracle刪除一些表資料,然後釋放表空間的儲存過程

2021-03-12 14:56:34 字數 1538 閱讀 2170

1樓:匿名使用者

create or replace procedure ttt is

begin

delete from bbb where。。。。。。 ;

***mit;

execute immediate 'create table aaa as select * from bbb';

***mit;

--刪除表bbb所有資料

execute immediate 'truncate table bbb';

***mit;

--將臨時表aaa的資料轉移到bbb表中

insert into bbb select * from aaa;

***mit;

--刪除臨時表aaa

execute immediate 'drop table aaa';

***mit;

end;

順便說一句,你之前為什麼要delete表bbb裡的資料呢?還有,你儲存過程裡沒end

---------補充------

||是用來區分普通欄位和變數欄位的

他那個寫法不和我這個一樣嗎?

他那個只不過把我單引號裡的sql設定成了一個變數,叫str

2樓:匿名使用者

我以前也這樣寫過,告訴你,儲存過程裡面只能放動態的sql,不能直接放create 這種東西的。估計truncate也是不能放的。

不管你是10g還是9i,都是不能的。

看我以前寫的,以及人家的回答

3樓:匿名使用者

||是連線字串的符號,如果你table name和欄位名沒有用變數就不用連線,直接寫成:

str:='create table test(aa varchar2(10),bb number)';

execute immediate str;

其中test是你要建立的表名,aa和bb是欄位名,這個請用你自己的表名和欄位名替換.

4樓:為戰而生在死

str:= 'create table '||tname|| '('||c1||' char,'||c2||' char) ';

execute immediate str;

等同於execute immediate( 'create table t_name ' || '(c1 char,c2 char)');

5樓:一柒球寶寶

將你要執行的語句拼好賦給一個varchar2變數sql_str,然後execute immediate sql_str;***mit;

這樣就好了,記住每一次execute後都***mit一下,要不有的事務是沒提交的。

6樓:匿名使用者

|| 是連線兩個字串的操作。

7樓:匿名使用者

||相當於連線字串的意思!

怎樣篩選excel表中的資料,然後刪除

篩選之後可以選擇篩選出來的資料,然後按ctrl g,選擇可見單元格,然後就可以把這些選中的刪除或者清空內容 如果是相同資料,可以ctlr f 查詢後 ctrl a全選,關閉查詢框,按del鍵,就可以刪除了,然後繼續篩選!鎖定excell表頭,然後在標題欄裡面找一下資料,點選資料 篩選 自動篩選,然後...

菲律賓風俗,給我一些,菲律賓風俗, 給我一些資料

菲律賓人天性和藹大方,善於交際。會面禮節是握手。對長輩是極其尊重,晚輩對長輩要恭恭敬敬地欠身鞠躬,有的則會上前輕吻對方的手背,以示敬重之意。年輕姑娘見到長輩時,往往會上前輕吻對方的兩頰為禮。由於天氣炎熱,菲律賓的穆斯林有時在室外不戴帽子,相互見面往往會行 摸手禮 但不戴帽子的穆斯林致意時,必須先用左...

急需!我需要一些複習急需!我需要一些複習資料

小學五年級語文下冊複習試卷 地理1.1 中國的疆域 偉大的祖國 中華人民共和國位於亞洲的東部 太平洋的西岸。海陸兼備。遼闊的疆域 陸地大國 國土遼闊 陸界 陸上鄰國多14個 海洋大國 遼闊海域 海岸線長 隔海六國 最北 漠河54度n 最東 黑龍江與烏蘇里江匯合處135度e。最南 曾母暗沙4度n。最西...