a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

借用小小的一個問題-談談Oracle理論基礎學習的重要

2024-08-29 13:53:37
字體:
供稿:網(wǎng)友
Oracle的學習可不是一件容易事,特別是理論的知識,不僅枯燥,而且很多抽象的問題經(jīng)常讓我們的Oracle學習者感到各種各樣的困惑,從而讓我們的學習者對自己產(chǎn)生懷疑,從而放棄理論的學習,而僅僅局限在一些很膚淺的做實驗的學習中。前幾天就和一兩個朋友討論過為什么理論性的學習網(wǎng)友們不感冒,卻僅僅只是局限在做實驗的學習中。 而很多網(wǎng)友又反應做過了實驗,就只會做實驗了,而為什么做,里面每一步有什么作用卻一點都不了解。 這就是沒有好好學習理論導致的。 我讀大學是學習化學的,化學里經(jīng)常要做實驗,實驗里的每個步驟都以理論為依據(jù)的, 當時上課的時候,老師都是在實驗過程前,標注好實驗的依據(jù),實驗中的每個環(huán)節(jié)的知識點,已經(jīng)實驗最后的結(jié)論,這樣的實驗才是一個完整的實驗。 當然,沒有老師的這些基礎知識的理論,我們完全照著實驗圖解來做也可以做出來,但是這樣的實驗僅是得到最后的一個實驗產(chǎn)物,或者失敗, 除了多聞了一下實驗室里藥品的聞到,還得到了其他的什么呢?

下面我通過一個小小的問題做實例,談談Oracle理論學習的重要性。

有一個網(wǎng)友在論壇里提出了這樣一個問題

原問題見“ Oracle中可不可以用一個Select語句,查出Oracle自帶的所有函數(shù)名稱 ”

想通過select語句找到所有內(nèi)嵌的函數(shù),其實就是查詢Oracle的數(shù)據(jù)字典表了。這個問題我還是第一次遇到過,雖然對這個問題還沒有確定的答案,但是,但是作為管理平時對Oracle的數(shù)據(jù)字典的理論指導我一步一步找到答案。

在Oracle數(shù)據(jù)庫里,對PLSQL的段,function,PRocedure,package里的function和procedure,沒有分開進行管理,都是通過procedure系列的數(shù)據(jù)字典表進行管理的。所以這里的答案應該就在這里找,繼續(xù)深入,在Oracle里內(nèi)嵌的對象都是在一個名為STANDARD的package進行定義的,我們來看看dba_procedure的表的結(jié)構(gòu)

SQL> desc dba_procedures

Name           Type         Nullable Default Comments                                                       

-------------- ------------ -------- ------- --------------------------------------------------------------

OWNER          VARCHAR2(30)                                                                                 

OBJECT_NAME    VARCHAR2(30)                  Name of the object : top level function/procedure/package name

PROCEDURE_NAME VARCHAR2(30) Y                Name of the procedure                                          

AGGREGATE      VARCHAR2(3)  Y                Is it an aggregate function ?                                  

PipELINED      VARCHAR2(3)  Y                Is it a pipelined table function ?                             

IMPLTYPEOWNER  VARCHAR2(30) Y                Name of the owner of the implementation type (if any)          

IMPLTYPENAME   VARCHAR2(30) Y                Name of the implementation type (if any)                       

PARALLEL       VARCHAR2(3)  Y                Is the procedure parallel enabled ?                            

INTERFACE      VARCHAR2(3)  Y                                                                               

DETERMINISTIC  VARCHAR2(3)  Y                                                                               

AUTHID         VARCHAR2(12) Y                                   

這里可以看到Object_name這個字段的描述

Name of the object : top level function/procedure/package name 頂層的package name。

根據(jù)這里的描述 我們可以看到,如果是在STANDARD這個表里建立的話,那么我們用OBJECT_name就可以查詢到這里我們需要的結(jié)果了。

用以下的sql

select * from dba_procedures where object_name = 'STANDARD'

有很多的重復記錄,加上distinct即可

最后的sql也就是

select distinct procedure_name from dba_procedures where object_name = 'STANDARD'

就是我們的最后的答案。

這個問題并不是一個復雜的問題,但是這里我們可以看到,有時我們解決問題的時候,如果對理論基礎有比較多的了解的話,可以讓我們有一個很清晰的思考和分析的方向,而根據(jù)這個方向,我們要找到我們的答案,就方便的多了。這里的這個問題就是如此,有興趣的朋友可以在google上搜尋一下,google上是沒有答案的。

基礎理論對我們的重要性就在此, 有很多的朋友平時對基礎理論不是特別看中,相反的有很多網(wǎng)友僅僅只是通過實例操作和做實驗來進行,這個是一個不正確的認識,的確實驗和實例相對于理論學習更具體,而且對著實驗做,一步一步,描述的清楚,而且學起來又簡單,但是對于龐大的知識體系,比如說Oracle,不同的case導致不同的結(jié)果,單憑一個小小的實驗很難深入到真正的Oracle體系,你做的個這個實驗可能改變小小的一點,就會導致另外的表現(xiàn),而必須用另外的方式去解釋和解決。 如果你的知識點是以單個點為基礎的,那么可想而知,如此窄的認知,在千變?nèi)f化的組合面前就顯的太單薄叻, 我們只有通過基礎理論的加深,把我們單一的知識點匯集和深入到線,甚至面的基礎上,這樣的認知才是有力度的。才能在復雜紛亂的情況下,找到問題的本質(zhì)。Oracle學習之道就在此,理論為主,實驗為輔,有理論的實驗才是一個有意義的實驗。不要做完了實驗,是看到個成功和失敗。其他的什么都沒有印象叻。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美精品欧美极品欧美激情 | 亚洲天堂字幕 | h片在线免费观看 | 亚洲男人天堂 | 自拍偷拍欧美日韩 | 免费毛片一区二区三区久久久 | 久草精品在线观看 | 久久久久中文字幕 | 久久久久久免费免费 | 91在线网址| 五月婷在线视频 | 麻豆国产一区二区三区四区 | 4虎网址| 日韩中文字 | 国产欧美日本 | 欧美影院一区二区三区 | 人人超碰在线 | 亚洲天堂久 | 欧美永久精品 | 看片国产 | 91夜夜蜜桃臀一区二区三区 | 国产97碰免费视频 | 99精品欧美一区二区三区 | 日韩欧美在线一区二区 | 中文字幕日韩欧美一区二区三区 | 在线免费色 | 蜜桃av一区二区三区 | 亚洲高清视频网站 | 久久久久久久国产 | 午夜网 | 久久久99精品免费观看 | 很黄很污的网站 | 青青草网 | 久久伊人免费视频 | 久久视频在线免费观看 | 夜夜嗨av涩爱av牛牛影视 | 人人澡人人澡 | 欧美啪啪 | 中文字幕视频网站 | 人人干网站| 日本高清视频网站 |