国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

充分利用 Oracle SQL Developer 報表

2024-08-29 13:35:56
字體:
來源:轉載
供稿:網友
   Oracle SQL Developer(以前稱為 PRoject Raptor)是 Oracle 針對開發人員和 DBA 新推出的多平臺圖形用戶界面 (GUI)。與 Oracle 數據庫 10g 快捷版 (XE) 以及 Oracle JDeveloper 一樣,可以免費下載 Oracle SQL Developer。 Oracle SQL Developer 可在 Windows、Macintosh 和 linux 平臺上運行。    Oracle SQL Developer 為開發人員提供了許多強大特性,包括用于操作數據庫對象的圖形對話框、SQL 工作表、PL/SQL 編輯器以及一個報表工具。它基于 Oracle JDeveloper java IDE,具有直觀的樹狀導航結構。     報表工具答應以兩種方式創建報表:可以從一大組預定義的標準數據字典報表中進行選擇,也可以創建一個用戶自定義的報表。Oracle SQL Developer 報表還支持綁定變量和下鉆報表。     安裝、配置以及創建到數據庫的連接超出了本文的討論范圍。有關這些主題的具體信息,請參閱 OTN 上的 Oracle SQL Developer 主頁。     要使用報表,首先啟動適合您平臺的 Oracle SQL Developer。連接到一個數據庫,單擊 Reports 選項卡。單擊 Reports 符號旁邊的加號 (+),然后單擊 Data Dictionary Reports 旁邊的加號。暫時先不管 User Defined Reports 項。     樹狀視圖導航在此表現為文件夾和文件。例如,Data Dictionary Reports 目錄是 Reports 文件夾的子目錄,或者用導航語法表示為 Reports->Data Dictionary Reports。 單擊 Data Dictionary 文件夾中任意子文件夾旁邊的加號。 充分利用 Oracle SQL Developer 報表(圖一)

Oracle 提供的報表

(注:運行某個報表時,可能會看到 Select Connection 對話框。選擇您的連接,然后單擊 OK。 ) 充分利用 Oracle SQL Developer 報表(圖二)Data Dictionary Reports 文件夾列出了 Oracle 提供的預定義報表集合。我們首先來看看這些標準報表中的一些報表。下面列出的是我發現在工作中很有用的一些報表。瀏覽這些報表,看看哪些報表可能對您有用。 All Parameters 報表 (Reports->Data Dictionary Reports->Database Administration->Database Parameters->All Parameters) 列出了所有的數據庫初始化參數。 當您單擊某個報表時,該報表自動運行。一些報表具有 Enter Bind Values 對話框,該對話框答應您限制對某些參數的查詢。我將在下面具體討論綁定變量。要運行該報表,選擇 Apply。充分利用 Oracle SQL Developer 報表(圖三)
點擊查看大圖
充分利用 Oracle SQL Developer 報表(圖四) 選擇 Free Space 報表 (Reports->Data Dictionary Reports->Database Administration->Storage->Free Space) 可查看每個表空間中的可用空間。 充分利用 Oracle SQL Developer 報表(圖五)
點擊查看大圖
Active sessions 報表 (Reports->Data Dictionary Reports->Database Administration->Sessions->Active Sessions) 顯示了數據庫中的所有活動會話。使用該報表可查看登錄的用戶及其會話的具體信息。
   我發現 Top SQL 節點下的所有報表 (Reports->Data Dictionary Reports->Database Administration->Top SQL->*) 都很有價值。我喜歡對系統中進行的操作有一個整體了解,按 CPU 或 IO 查看 Top SQL 就是實現此目的的一個不錯方法。    當我記不住確切的表名或列名時,User Tables 報表 (Reports->Data Dictionary Reports->Table->User Tables) 就是個不錯的幫手。    我發現 Quality Assurance 報表 (Reports->Data Dictionary Reports->Table->Quality Assurance->*) 在開發過程中很有價值。我傾向于手工編寫大量的 DDL 代碼,很可能會丟失某個索引或鍵。    使用 PL/SQL 搜索報表 (Reports->Data Dictionary Reports->PL/SQL->Search Source Code) 可以節省大量時間??梢愿鶕ο竺Q或源文本字符串進行搜索。     我們來看看該報表背后的 SQL 代碼。在需要的時候運行該報表。在 Reports 窗格上,報表數據上方有三個按鈕:一個紅色的圖釘、一個綠色的三角形,以及矩形中的文本 SQL。最后一個按鈕從報表中復制 SQL,將其放在一個 SQL 工作表中。單擊 SQL 按鈕。
充分利用 Oracle SQL Developer 報表(圖六)
點擊查看大圖
查看所提供的 SQL 是一個學習一些 SQL 技巧的好方法。其中有些技巧將幫助您創建自己的用戶定義報表。

下鉆報表

Oracle SQL Developer 報表的一個重要特性是下鉆功能。這是我最喜歡的 Oracle SQL Developer 特性之一。我稍后將在本文中將向您介紹如編寫自己的下鉆報表。 打開 Reports->Data Dictionary Reports->Table->User Tables 報表,它列出您模式中的所有表。運行了該報表后,雙擊結果集網格中的任一行。 該操作將打開一個包含表的說明的新選項卡。假如您遵循了以上操作,現在就會看到該表的列定義。在數據窗格中,您將有兩個選項卡:一個針對所運行的報表,另一個針對下鉆對象。打開另一個報表,雙擊某一行。 下鉆適用于在導航器上(在 Connections 選項卡下)具有對應節點的所有報表。假如您嘗試雙擊 All Parameters 報表,則不會發生任何操作,這是因為 Connections 下面沒有 Parameter 節點。由于下鉆功能僅限于 Navigator 節點上的項,因此從某種程度上講,它僅限于您自己的報表。當使用 Oracle SQL Developer 的 Oracle 開發人員增加了下鉆到某處的能力(即替換下鉆查詢)時,這將是一個真正有用的功能。 直到此時,它才對您碰巧編寫的任何字典報表有用。假如您希望向正在編寫的報表添加下鉆功能,只需在查詢中添加三個列即可。下面,我給出了一些示例。 充分利用 Oracle SQL Developer 報表(圖七)
點擊查看大圖
在該圖中,sdev_link_owner 是 OBJECT_OWNER,sdev_link_name 是 OBJECT_NAME,sdev_link_type 是 OBJECT_TYPE。 用相同的別名添加這三項,雙擊時,Oracle SQL Developer 將自動下鉆。記住,只有那些在導航器窗格中具有節點的項才能在此時下鉆。

簡單的用戶報表

注:針對下面的大多數示例,我在 Oracle 數據庫 XE 安裝中使用 SYSTEM 帳戶和 HR 帳戶。假如您有一個 Oracle 數據庫 XE 數據庫,按我說的做會更簡單些。假如您沒有 Oracle 數據庫 XE 數據庫,仍然可以按我說的做,但是在某些情況下可能必須選擇不同的表。可以從 OTN 上免費下載 Oracle 數據庫 XE。 現在,您將首先創建一個簡單的報表。以 HR@XE 身份登錄。單擊導航器中的最后一個節點 User Defined Reports。右鍵單擊這個展開的節點,您將看到一個具有以下選項的上下文菜單:Add Folder、Add Report、Delete、Copy、Cut 和 Paste。Oracle SQL Developer 為導航維護一個樹結構;我建議您最好進行相同的操作。使用文件夾對報表按邏輯分組。您可以選擇按應用程序對報表進行分組,我對下面圖 12 中顯示的 Employee Reports 和 User Data Dictionary 應用程序下面的報表就是這樣處理的。除了按應用程序名稱進行分組外,您可能還希望按其他標準對報表進行分組,但不建議您轉儲 User Defined Reports 下的所有內容。 選擇 Add Folder 新建一個文件夾?,F在,我們將該文件夾稱作 Employee Reports。輸入您希望用作說明的任何內容。假如您將鼠標停留在導航器中的該項上,將顯示 ToolTip 文本。單擊 Apply 保存。 充分利用 Oracle SQL Developer 報表(圖八)
在 Employee Reports 上單擊鼠標右鍵?,F在的上下文菜單與前一個相比多了一個 Edit 項。選擇 Edit。進行所需要的任何更改,然后單擊 Apply 保存。 再次單擊鼠標右鍵,然后選擇 Add Report。將報表命名為“Number of Employees by Department”。在 Description 和 ToolTip 中輸入您想要的任意文本。將下面的查詢用作報表 SQL: Select department_id, count(*)From EmployeesGroup By department_id充分利用 Oracle SQL Developer 報表(圖九)單擊 Apply 保存。    單擊 Employee Reports 節點旁邊的加號,然后單擊新報表??赡軙吹?Select Connection 對話框。假如這樣,則選擇 HR 連接并單擊 OK。    現在,您是您第一個用戶定義報表的自豪的所有者。盡管該報表很有用,但假如它能列出部門名稱而非部門 ID,用處就更大了。要添加該功能,首先在該報表上單擊鼠標右鍵。您將注重到該報表在上下文菜單中具有以下幾項:Open、Open New Window、Edit 和 Show Properties。選擇 Edit。   更改您的查詢,使其包括 Departments 中的部門名稱: Select d.department_name, count(*)From Employees eJoin Departments d On (e.department_id = d.department_id)Group By d.department_name單擊 Apply 保存,然后返回報表。    讓我們將這個報表變得更加有趣。在該報表上單擊鼠標右鍵,選擇 Copy。假如再次單擊鼠標右鍵,將發現沒有了 Paste 選項。右鍵單擊 Employee Reports 節點?,F在可以粘貼報表了。右鍵單擊新報表(結尾處有括號包含著數字的報表),選擇 Edit。將查詢更改為下面的測試: Select e.Last_Name, e.First_name, d.department_name, count(*) over (partition by d.department_name) dept_count, count(*) over ()From Employees eJoin Departments d On (e.department_id = d.department_id)
充分利用 Oracle SQL Developer 報表(圖十)
點擊查看大圖
運行報表?,F在,這很有用。報表中包含一名雇員、一個部門名稱、該部門中的雇員數量,以及所有部門中的雇員數量。 創建有用的報表的要害在于能夠創建動態報表。假如您使用綁定變量,報表將能針對每次運行動態改變。在 Oracle SQL Developer 1.0 之前的版本中,雖然您可以修改 UserReports.xml 文件(位于 SQL Developer User Information Directory 中)來變相地添加綁定變量,并它并不直接支持使用綁定變量的用戶定義報表。使用 1.0 版可以輕松地創建使用綁定變量的報表。 現在對報表進行最后更改。您要添加一個綁定變量,它將答應用戶輸入一個部門名稱或部分名稱來選擇具體的部門,它也可以為空以選擇所有部門。按如下所示修改 SQL: Select e.Last_Name, e.First_name, d.department_name, count(*) over (partition by d.department_name) dept_count, count(*) over ()From Employees eJoin Departments d On (e.department_id = d.department_id)Where (:dept_name is nullor d.department_name = :dept_name)充分利用 Oracle SQL Developer 報表(圖十)
點擊查看大圖
運行該報表,然后看您的綁定變量屏幕。試著輸入一些值。 現在,我們來應用報表制作技巧,創建一個將對所有開發人員和 DBA 有用的報表。

復雜報表

由于這是一個新的報表類別,因此我們在 User Defined Reports 節點下面新建一個文件夾。該文件夾將包含您自己的 Data Dictionary 報表集,因此我們就將其稱為 User Data Dictionary 吧。 充分利用 Oracle SQL Developer 報表(圖十二)
點擊查看大圖

您的新報表將列出回收站中的所有對象以及它們所占用的空間。該報表在 Oracle 數據庫 XE 中尤為方便,您可以針對您的對象將磁盤空間限制為 4GB。 運行該報表的用戶需要能夠訪問 SYS.DBA_OBJECTS、SYS.DBA_SEGMENTS 和 SYS.DBA_RECYCLEBIN 數據庫對象。我通常以 SYSDBA 用戶的身份運行該報表。 新建一個用戶定義的報表,將其命名為 Recycled Objects。在 Description 和 ToolTip 中輸入想要的任意文本。使用該查詢: select ao.owner,ao.object_type,ar.original_name,ao.object_name recycled_name,ar.droptime,ds.bytes/1024/1024 "Megabytes",ao.owner sdev_link_owner,ao.object_name sdev_link_name,ao.object_type sdev_link_typefrom sys.dba_objects ao,sys.dba_segments ds,sys.dba_recyclebin arwhere ao.object_name like 'BIN$%'and ao.owner = ds.ownerand ao.object_name = ds.segment_nameand ar.object_name = ao.object_nameand ((ao.subobject_name is null AND ds.partition_name IS NULL)or ao.subobject_name = ds.partition_name)and ((:original_name is null or ar.original_name = :original_name)AND (:object_type is null orao.object_type = :object_type))該報表包括 SDEV_LINK_OWNER、SDEV_LINK_NAME 和 SDEV_LINK_TYPE 別名。這意味著答應您下鉆來查看所引用的項的結構。對于該查詢而言,它將下鉆到 RECYCLEBIN 中的項。假如將 SDEV_LINK_NAME 從 ao.object_name 更改為 ar.original_name,您將下鉆到已經替換了它的項(假如有的話)??梢詫υ搱蟊磉M行修改,以便答應在模式之間切換。 將 SDEV_LINK_NAME 行從 ao.object_name sdev_link_name,修改為 decode( :original_or_recycle, 1, ar.original_name, ao.object_name) sdev_link_name,    現在,運行該報表時,假如希望下鉆到回收的對象,不用進行任何操作即可。另一方面,假如希望下鉆到初始對象(假如存在),則將 original_or_recycle 變量更改為 1。     這些技巧使 Oracle SQL Developer 中的下鉆功能變得如此聰明。當 Oracle 開發人員將該功能修改為答應通過自定義的查詢下鉆時,這將非常有用!訪問 OTN 上的 Oracle SQL Developer 論壇 (http://forums.oracle.com/forums/forum.jspa?forumID=260),讓 Oracle 知道您需要自定義查詢下鉆這個特性!     除了更改 original_or_recycle 變量外,還可以用對象類型和/或初始對象名稱來限制返回數據集。該查詢的最后四行創建了綁定變量。上面具體介紹了綁定變量,因此無需贅述。    在綁定變量對話框中為報表的終端用戶提供額外的描述性信息將很有幫助,難道不是嗎?假如我想與其他人共享該報表,original_or_recycle 變量確實需要額外的描述性文本。有一種提供該操作的方法。     我已經提到過,在 Oracle SQL Developer 1.0 之前的版本中,編輯 UserReports.xml 文件可以添加綁定變量。您可以在當前版本中執行相同操作來擴展綁定功能??梢蕴砑用枋鲂晕谋荆奶崾荆踔量梢灾付J值。下面介紹如何添加描述性文本:     您需要導航到名為 SQL Developer User Information Directory 的 OS 目錄。在 MS Windows 中,打開 C:->Documents and Settings 目錄。在該目錄下,選擇要用來登錄的用戶身份。例如,假如以 lcunning 身份登錄,我就會導航到 C:->Documents and Settings->lcunning 目錄。在該目錄中,導航到 .sqldeveloper 目錄。與我的用戶 lcunning 保持一致,我現在在 C:->Documents and Settings->lcunning->.sqldeveloper 目錄中。      在 Linux 中,您會發現該目錄是 .sqldeveloper 主目錄下的一個子目錄。因此,對于 $HOME 為 /home/lcunning 的用戶而言,UserReports.xml 應該位于 /home/lcunning/.sqldeveloper 下。    .sqldeveloper 目錄中至少應該有兩個文件。其中一個文件就是 UserReports.xml,它包含您的用戶定義報表。您可以用最喜歡的 XML 編輯器打開它。
充分利用 Oracle SQL Developer 報表(圖十三)
點擊查看大圖

注:編輯 UserReports.xml 文件之前,請進行備份!假如您搞亂了 XML 語法,您還能用備份替換該文件,然后重新開始。 XML 文檔的格式如下所示: <reports><folder><name></name><description></description><report enabled="true"><name></name><description></description><tooltip></tooltip><query><sql></sql></query></report></folder></reports>您可以從內向外理解這個文件,這是因為 SQL 查詢包裝在一個報表中,該報表位于一個包含在報表文檔中的文件夾中;您還可以從外向內理解這個文件,這是因為報表文檔包含一個或多個文件夾(具有一個名稱和一個描述),而每個文件夾又包含了一個或多個報表。每個報表都用名稱、描述、工具提示和查詢定義。一個查詢由多條 SQL 語句組成。 query 節點就是進行修改的地方。您將在 <query> 節點中緊跟 <sql> 節點后添加一個 <binds> 節點。 binds 節點應如下所示: <binds><bind id=""><type></type><prompt></prompt><value></value><tooltip></tooltip></bind></binds>bind 標記的 id 屬性是綁定變量的名稱。以這種方式創建綁定變量時,假如您包括了一個綁定變量,就必須包括該報表的所有綁定變量。 假如希望某個綁定變量有一個默認值,可以將該值放在 value 元素中。 進一步的描述放在 ToolTip 中。對于 original_or_recycle、original_name 和 object_type 這三個變量,使用下面的值: <binds><bind id="original_or_recycle"><type><![CDATA[null</type><prompt><![CDATA[original_or_recycle</prompt><value><![CDATA[NULL_VALUE</value><tooltip><![CDATA[Enter 1 to drill down to the original object, otherwise leave it null</tooltip></bind><bind id="original_name"><type><![CDATA[null</type><prompt><![CDATA[original_name</prompt><value><![CDATA[NULL_VALUE</value><tooltip><![CDATA[Enter the original name</tooltip></bind><bind id="object_type"><type><![CDATA[null</type><prompt><![CDATA[object_type</prompt><value><![CDATA[NULL_VALUE</value><tooltip><![CDATA[Enter an object type</tooltip></bind></binds>使用 ![CDATA ]] 文本是一種保護自己的方法,因為它告訴 XML 分析器不要嘗試解釋方括號中的內容。假如您不熟悉 XML,應該努力總是包括該文本。 修改描述性文本和默認值有很大的價值,因此我打賭 Oracle 的 SQL Developer 團隊過一段時間將對此進行改進?,F在已經有了定制的能力;只不過還沒有接口。 修改了 UserReports.xml 文件之后,您將需要退出并重新啟動 Oracle SQL Developer。重新啟動之后,運行報表。您會看到類似下面的屏幕。 充分利用 Oracle SQL Developer 報表(圖十四)
點擊查看大圖

共享報表

假如您想與客戶、同事或其他 Oracle SQL Developer 用戶共享自己的用戶定義報表,可以復制 UserReports.xml 文件,然后將它移至他們計算機上的 SQL Developer User Information Directory,即可共享您的所有報表。 假如您不想共享其中某些報表,則針對特定報表刪除 <report> 和 </report> 之間的文本。(請再次確保保留了文件的備份?。?

導出報表數據

運行了報表后,在數據網格中單擊鼠標右鍵,將看到一個上下文菜單。唯一的選項應該是 EXPort。選擇 Export,將獲得另一個包含了 CSV、XML、Insert、Loader 和 Text 的菜單。這些選項是報表數據的導出格式。選擇以上任何選項都會彈出相同的對話框。 充分利用 Oracle SQL Developer 報表(圖十五)
  • CSV 是一個用逗號分隔的值文件,適用于導入到電子表格(或 Oracle application Express)中。
  • XML 是數據的 XML 文檔。
  • Insert 為數據集中的每條記錄創建一個插入語句。
  • Loader 創建一個 SQL*Loader 數據控制文件。
  • Text 創建一個用制表符分隔的文本文件。

對話框中的 Columns 選項卡答應您選擇導出文件中包含哪些列,Where 選項卡答應您添加一個可選的 where 子句以限制進入輸出文件的記錄。

SQL*Plus 該讓位了

Oracle SQL Developer 是每個 Oracle 開發人員的工具包中都應有的一個工具。Oracle SQL Developer 除了答應您進行 SQL 和 PL/SQL 開發外,還提供了一個長長的有用報表的列表,以及一個創建您自己的用戶定義報表的工具。 SQL*Plus 該讓位了,Oracle SQL Developer 簡化了自定義報表的創建,并且提供了額外的功能(如變量對話框和下鉆報表)。假如您定期訪問某個 Oracle 數據庫,您可以將其歸自己所有,下載 Oracle SQL Developer 試一下。
Lewis R. Cunningham (lewisc@rocketmail.com) 是交通運輸行業的一名數據庫架構師、開發人員和 DBA,并且是一名 Oracle ACE。他在 http://blogs.ittoolbox.com/oracle/guide/ 為 ITtoolbox 編寫 “An Expert’s Guide to Oracle”,并且使用 Oracle 技術有 13 年了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 改则县| 会泽县| 遂宁市| 凤台县| 阿城市| 左云县| 绵阳市| 漯河市| 呼和浩特市| 古田县| 信阳市| 郴州市| 会同县| 宜兰市| 乐平市| 黄骅市| 辽源市| 哈尔滨市| 黑山县| 满洲里市| 永登县| 金乡县| 浙江省| 兴业县| 尉犁县| 宝山区| 长葛市| 普定县| 油尖旺区| 承德市| 上高县| 黄陵县| 阳原县| 大安市| 平湖市| 辛集市| 正宁县| 定安县| 时尚| 大兴区| 塔城市|