簡體   English   中英

AS400 SQL查詢類似於本機AS400中的CLRLIB(清除庫)

[英]AS400 SQL query similar to CLRLIB (clear library) in native AS400

我正在研究AS400數據庫,我需要用sql操作庫/集合。

我需要重新創建類似於CLRLIB命令的東西,但我找不到一個好方法來做到這一點。

有沒有辦法用SQL查詢從庫中刪除所有表?

也許我可以刪除該集合並創建一個具有相同名稱的新集合。 但我不知道這是否是清除圖書館的好方法。

解決方案:感謝Buck Calabro的解決方案。

我使用以下查詢在SQL中調用CLRLIB:

CALL QSYS.QCMDEXC('CLRLIB LIB_NAME ASPDEV(ASP_NAME)', 0000000032.00000)

如果LIB_NAME是我要清除的庫的名稱,則ASP_NAME是庫所在的ASP的名稱,而0000000032.00000是命令lenght。

(請注意,術語COLLECTION已被棄用,SCHEMA是當前術語)

由於庫可以包含SQL和非SQL對象,因此沒有SQL方法可以刪除每個可能的對象類型。

刪除架構並重新創建它可能會起作用。 但請注意,如果庫位於作業的庫列表中,它將鎖定它,您將無法刪除它。 此外,除非最初通過CREATE SCHEMA(或CREATE COLLECTION)創建庫,否則最終會產生差異。

CRTLIB創建一個空庫,CREATE SCHEMA創建一個庫以及自動日記所需的對象和十幾個SQL系統視圖。

閱讀Charles的回答 - 您的架構中可能存在您要保留的對象(數據區域,程序,顯示和打印機文件等)如果問題是要刪除所有表,那么您可以重新構建所有表表,然后查看各種系統目錄表:SYSTABLES,SYSVIEWS,SYSINDEXES等。系統目錄“知道”所有SQL表,索引,視圖,存儲過程,觸發器等。 您可以閱讀目錄並發出相應的SQL DROP語句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM