當前位置:首頁 » 編程語言 » sql遞歸刪除

sql遞歸刪除

發布時間: 2023-03-29 03:07:58

⑴ oracle刪除表的時候時候出現遞歸sql級別2出現錯誤表或視圖不存在,在sysiao中刪除用戶也是是這個錯,求解

這是典型的語法錯誤。
表名不存在。
或,把你的SQL復制出來。

⑵ oracle 表刪除出錯 ORA-00604: 遞歸 SQL 級別 1 出現錯誤 ORA-01426: 數字溢出

解決辦法:
在listener.ora中增加對BlueAeri-PC或ip地址的偵聽,具體步驟如下:
1.啟動Net Manager,在「監聽程序」--Listener下添加一個地址,主機名寫計算機名字或者ip,埠號還是1521,然後保存讓宴。
2.重啟監聽服務。
3.啟動Database configuration Assistant 「配置資料庫選件」就可以重新配置em了,而不用枯賀刪除資料庫。再次創建資料庫坦敗銀時也不會報如上的錯誤。

⑶ 遞歸SQL語句、索引的HEIGHT和BLEVEL以及SELECT FOR UPDATE相關問題

1,所謂的遞歸sql就是在運行當前的sql時調用另外一個sql,如果另外一個sql又調用了另一個sql,那麼遞歸深度就是1(從0開始)。

2,unique scan一般出現在掃描具有unique約束的索引列上:

scott@ORCL>select * from emp where empno=7788;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7788 TEST ANALYST 7566 09-12月-83 10000 20

執行計劃
----------------------------------------------------------
Plan hash value: 1181765974

---------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 37 | 1 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 37 | 1 (0)| 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | EMP_EMPNO_IDX | 1 | | 0 (0)| 00:00:01 |
---------------------------------------------------------------------------------------------

因為CBO知道這個索引是唯一的,所以確褲瞎定在掃描時只會返回一個rowid。

而range scan一般是掃描非唯一索引時,原理同上含旦,不再贅述。

3,scott@ORCL>analyze index emp_empno_idx validate structure;

索引已分析

scott@ORCL>select HEIGHT from index_stats;

HEIGHT
----------
1

scott@ORCL>select blevel from user_indexes where index_name='EMP_EMPNO_IDX'談純擾;

BLEVEL
----------
0

另外平衡樹的索引結構如下:

1
/\
/ \
2 3
/ \
4 5

height也就是索引的高度,這里是3。

而blevel指的是從根遍歷到當前塊要走的路徑長度,比如:2,3的blevel為1;4,5的為2,根本身的blevel為0

而在user_indexes中的blevel欄位值正是上面值的最大值,通常等於樹的高度,即height值:

下面是實例說明:

scott@ORCL>create table test as select * from sys.SOURCE$;

表已創建。

scott@ORCL>desc test
名稱
-----------------------------------------------------------------------------------------------------

OBJ#
LINE
SOURCE

scott@ORCL>create index test_idx on test(obj#);

索引已創建。

scott@ORCL>analyze index test_idx validate structure;

索引已分析

scott@ORCL>select blevel from all_indexes where lower(index_name)='test_idx';

BLEVEL
----------
2

4,當然可行,因為這時其它行是沒有被鎖定的。
scott@ORCL>select * from emp where deptno=10 for update;

sys@ORCL>delete from scott.emp where deptno!=10;

已刪除11行。

其實有的問題只要自己動手實踐一下就行了,另外樹高度為三級的索引是非常罕見的,除非你的表是非常的巨大。

⑷ sql觸發器 遞歸 問題

觸發器有兩種不同的遞歸方式,直接遞歸和間接遞歸。

1.直接遞歸

當觸發器被激活並執行一個操作時,該操衡銷作又使用同一個觸發器再次執行操作,被稱為直接遞歸。

例利用觸發器的直接遞歸,當在表中刪除一條記錄時,通過觸發器刪除表中所有編號相同的記錄。

2.間接遞歸

更改表1中的數據時,觸發器被激活並執行一個操作,而該操作又使另一個表2中的某個觸發器被激活。表2中的這個觸發器使表1得到更新,從而再次激活表1中的觸發器,被稱為間接遞歸。

例如,一應用程序更新了氏滾表TA,並引發觸發器Trigger_A。Trigger_A更新表TB,從而使觸發器Trigger_B被引發。Trigger_B轉而更新表TA,從而使Trigger_A再次被引發間接遞歸。

可以利用系統存儲過程sp_dboption關閉直接遞歸,但這又會開啟間接遞歸。若要把這兩種類型的遞歸都禁止,需要使用系統存儲過程sp_configure。
參考資料:明日系列編程詞典--SQL Server 編程咐核游詞典體驗版

⑸ sql2005 根據子ID遞歸查詢所有父ID,如下,問:dbo怎麼才能否去掉

因為你的with後面的名啟者閉稱和悄裂表的名稱一樣了,沖突了嫌隱。
WITH XI_news_Class 改成with 其他名稱

⑹ sql無限遞歸如何刪除

CREATE PROCEDURE up_delete
@delid int

AS
declare @cnt int
select count(1)=@cnt from table where parentid=@delid
if (@cnt >0)
begin
exec up_delete @delid
end
delete from table where id=@delid

go

調用方法 exec up_delete @id,會刪除某個id以及此id的所有子早猛兆類知扒。陸租

⑺ sql如何利用遞歸批量刪除數據

在設計資料庫是 考慮 外鍵的添加,然後 項目中 利用 級聯刪除 實現你想要的效果。。。

⑻ SQL遞歸或級聯刪除操作,無限極,無限量

設置外鍵,在資料庫中啟用級聯刪除和級聯更新選項

⑼ 在oracle資料庫中,想要刪除一個用戶,但是報遞歸SQL級別1出現錯誤,表或視圖不存在,請問有辦法解決嗎

drop user 用戶名 cascade;
刪除用戶的同時會把該用戶模式下的對象也刪除。

⑽ oracle 10g 刪除用戶時提示ORA-00604 :遞歸SQL級別 1

用sys用戶登錄 刪除。

熱點內容
新建文件夾命令按鈕 發布:2024-11-02 22:32:09 瀏覽:570
給首付解壓 發布:2024-11-02 22:24:01 瀏覽:51
活春文件夾 發布:2024-11-02 22:22:18 瀏覽:144
pythonlist參數傳遞 發布:2024-11-02 22:18:57 瀏覽:598
林肯冒險家買哪個配置人多 發布:2024-11-02 22:14:34 瀏覽:542
馬鈴薯存儲 發布:2024-11-02 22:09:21 瀏覽:362
android的title居中 發布:2024-11-02 21:59:53 瀏覽:876
orchard源碼 發布:2024-11-02 21:51:20 瀏覽:940
ntp伺服器地址修改 發布:2024-11-02 21:31:46 瀏覽:818
c打開文件夾選中文件 發布:2024-11-02 21:31:12 瀏覽:600