freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

技術開發(fā)部oracle初級-資料下載頁

2024-10-24 11:41本頁面

【導讀】面的知識,屬于Oracle系統(tǒng)管理培訓的內容,此處不進行討論。因為CHAR類型是定長的,ORACLE會自在后面補空格,CHAR類型極大浪費物。理空間,又使程序處理很麻煩,絕對禁止。number,number其中number(p,0)可以寫成number,例如number. 是數(shù)據(jù)庫存儲數(shù)據(jù)的基本單元。使用ORACLE序列號發(fā)生器賦值。關系表、余額、發(fā)生額。平還是專業(yè)水平的一個極為重要的參數(shù)。建得不好不僅不能提高速度,而且會極大降低速度系統(tǒng)運行的效率。有的字段如錄入人標識號可以酌情不建,但總單細目關。行過程,參看相關資料。出來或根本出不來,但建索引后就是秒級響應。在用戶那時實施之初也不會反應,但一年后用戶就會怨聲載道。會降低插入、刪除、修改記錄的速度。視圖用一組查詢來定義,

  

【正文】 的對象是函數(shù)的話,就必須使用語句 DROP FUNCITON,如果是過程,就使用DROP PROCEDURE。象語句 CREATE 一樣, DROP 語句也是 DDL 命令,因此在該語句執(zhí)行前后 都要隱式地執(zhí)行 COMMIT 命令。如果指定的子程序不存在的話,則 DROP 語句將引發(fā)錯誤 “ ORA4043:對象不存在 .”。 第四節(jié) 創(chuàng)建并使用包 第 31 頁 共 58頁 包 集成在 PL/SQL 語言中的另一個 Ada 語言特性是包的概念。包是由存儲在一起的相關對象組成的 PL/SQL 結構。包有兩個獨立的部分,即說明部分和包體,這兩部分獨立地存儲在數(shù)據(jù)字典中。與可以位于本地塊或數(shù)據(jù)庫中的過程和函數(shù)不同,包只能存儲;并且不能在 本地存儲。除了允許相關的對象結為組之外,包與依賴性較強的存儲子程序相比,其所受的限制較少。除此之外,包的效率比較高從本質上講,包就是一個命名的聲明部分。任何可以出現(xiàn)在塊聲明中的語句都可以在包中使用,這些語句包括過程,函數(shù),游標,類型以及變量。把上述內容放入包中的好處是我們可以從其他 PL/SQL 塊中對其進行引用,因此包為 PL/SQL 提供了全程變量。 包的說明(也叫做包頭)包含了有關包內容的信息。然而,該部分中不包括包的代碼部分。 下面是一個包的說明部分: CREATE OR REPLACE PACKAGE ClassPackage AS Add a new student into the specified class. PROCEDURE AddStudent(p_StudentID IN %TYPE, p_Department IN %TYPE, p_Course IN %TYPE)。 Removes the specified student from the specified class. PROCEDURE RemoveStudent(p_StudentID IN %TYPE, p_Department IN %TYPE, p_Course IN %TYPE)。 Exception raised by RemoveStudent. e_StudentNotRegistered EXCEPTION。 Table type used to hold student info. TYPE t_StudentIDTable IS TABLE OF %TYPE INDEX BY BINARY_INTEGER。 Returns a PL/SQL table containing the students currently in the specified class. 第 32 頁 共 58頁 PROCEDURE ClassList(p_Department IN %TYPE, p_Course IN %TYPE, p_IDs OUT t_StudentIDTable, p_NumStudents IN OUT BINARY_INTEGER)。 END ClassPackage。 上面的包說明 ClassPackage 包括三個過程,一個類型說明和一個異常說明。創(chuàng)建包頭的語法如下所示: CREATE [OR REPLACE] PACKAGEpackage_name{ IS | AS } CREATE [OR REPLACE] PACKAGE package_name{IS | AS} type_definition| procedure_specification| function_specification| variable_declaration| exception_declaration| cursor_declaration| pragma_declaration END [ package_name]。 其中, package_name 是包的名稱。該包內的各種元素的說明語法(即過程說明,函數(shù)說明,變量說明等)與匿名塊中的同類元素的的說明使用的語法完全相同。也就是說,除去過程和函數(shù)的聲明以外,我們在前面介紹的用于過程聲明部分的語法也適用于包頭的說明部分。下面是這類語法的規(guī)則: ? 包元素的位置可以任意安排,然而,在聲明部分,對象必須在引用前進行聲明。例如,如 果一個游標使用了作 為其 WHERE 子句一部分的變量,則該變量必須在聲明游標之前聲明。 ? 包頭可以不對任何類型的元素進行說明。例如,包可以只帶有過程和函數(shù)說明語句,而不 聲明任何異常和類型。 ? 對過程和函數(shù)的任何聲明都必須是前向說明。所謂前向說明就是只對子程序和其參數(shù)(如 果有的話)進行描述,但不帶有任何代碼的說明。本書的第 5 章的‘前向聲明’一節(jié)專門 第 33 頁 共 58頁 介紹該類聲明的具體使用方法。該聲明的規(guī)則不同于塊聲明語法,在塊聲明中,過程或函 數(shù)的前向聲明和代碼同時出現(xiàn)在其聲明部分,而實現(xiàn)包所說明的過程或函數(shù)的代碼則只能 出現(xiàn)在包體中。 包體 包體是一個獨立于包頭的數(shù)據(jù)字典對象。包體只能在包頭完成編譯后才能進行編譯。包體 中帶有實現(xiàn)包頭中描述的前向子程序的代碼段。除此之外,包體還可以包括具有包體全局屬性 的附加聲明部分,但這些附加說明對于說明部分是不可見的。下面的例子演示了包ClassPackage 的包體部分: CREATE OR REPLACE PACKAGE BODY ClassPackage AS Add a new student for the specified class. PROCEDURE AddStudent(p_StudentID IN %TYPE, p_Department IN %TYPE, p_Course IN %TYPE) IS BEGIN INSERT INTO registered_students (student_id, department, course) VALUES (p_StudentID, p_Department, p_Course)。 END AddStudent。 Removes the specified student from the specified class. PROCEDURE RemoveStudent(p_StudentID IN %TYPE, p_Department IN %TYPE, p_Course IN %TYPE) IS BEGIN DELETE FROM registered_students WHERE student_id = p_StudentID AND department = p_Department AND course = p_Course。 Check to see if the DELETE operation was successful. If 第 34 頁 共 58頁 it didn39。t match any rows, raise an error. IF SQL%NOTFOUND THEN RAISE e_StudentNotRegistered。 END IF。 END RemoveStudent。 Returns a PL/SQL table containing the students currently in the specified class. PROCEDURE ClassList( p_Department IN %TYPE, p_Course IN %TYPE, p_IDs OUT t_StudentIDTable, p_NumStudents IN OUT BINARY_INTEGER) IS v_StudentID %TYPE。 Local cursor to fetch the registered students. CURSOR c_RegisteredStudents IS SELECT student_id FROM registered_students WHERE department = p_Department AND course = p_Course。 BEGIN /* p_NumStudents will be the table index. It will start at * 0, and be incremented each time through the fetch loop. * At the end of the loop, it will have the number of rows * fetched, and therefore the number of rows returned in * p_IDs. */ p_NumStudents := 0。 OPEN c_RegisteredStudents。 LOOP FETCH c_RegisteredStudents INTO v_StudentID。 第 35 頁 共 58頁 EXIT WHEN c_RegisteredStudents%NOTFOUND。 p_NumStudents := p_NumStudents + 1。 p_IDs(p_NumStudents) := v_StudentID。 END LOOP。 END ClassList。 END ClassPackage。 該包體部分包括了實現(xiàn)包頭中過程的前向說明的代碼。在包頭中沒有進行前向說明的對象(如異常 e_StudentNotRegistered)可以在包體 中直接引用。包體是可選的。如果包頭中沒有說明任何過程或函數(shù)的話(只有變量聲明,游標,類型等),則該包體就不必存在。由于包中的所有對象在包外都是可見的,所以,這種說明方法可用來聲明全局變量。(有關包元素的作用域和可見性將在下一節(jié)討論。)包頭中的任何前向說明不能出現(xiàn)在包體中。包頭和包體中的過程和函數(shù)的說明必須一致,其中包括子程序名和其參數(shù)名,以及參數(shù)的模式。 例如,由于下面的包體對函數(shù) FunctionA 使用了不同的參數(shù)表,因此其包頭與其包體不匹配。 CREATE OR REPLACE PACKAGE PackageA AS FUNCTION FunctionA(p_Parameter1 IN NUMBER, p_Parameter2 IN DATE) RETURN VARCHAR2。 END PackageA。 CREATE OR REPLACE PACKAGE BODY PackageA AS FUNCTION FunctionA(p_Parameter1 IN CHAR) RETURN VARCHAR2。 END PackageA。 如果我們企圖按上面的說明來創(chuàng)建包 PacgageA 的話,編譯程序將給包體提出下 列錯誤警告:PLS00328: A subprogram body must be defined for the forward declaration of FUNCTIONA. PLS00323: subprogram or cursor 39。FUNCTIONA39。 is declared in a package specification and must be defined in the package body. 第 36 頁 共 58頁 包和作用域 包頭中聲明的任何對象都是在其作用域中,并且可在其外部使用包名 作為前綴對其進行引用。例如,我們可以從下面的 PL/SQL 塊中調用對象 : BEGIN (10006,39。HIS39。,101)。 END。 上面的過程調用的格式與調用獨立過程的格式完全一致,其唯一不同的地方是在被調用的過程名的前面使用了包名作為其前綴。打包的過程可以具有默認參數(shù),并且這些參數(shù)可以通過按位置或按名稱對應的方式進行調用,就象獨立過程的參數(shù)的調用方式一樣。上述調用方法還可以適用于包中用戶定義的類型。例如 ,為了調用過程 ClassList,我們需要聲明一個類型為 的變量 DECLARE v_HistoryStudents 。 v_NumStudents BINARY_INTEGER := 20。 BEGIN Fill the PL/SQL table with the first 20 History 101 students. (39。HIS39。, 101, v_HistoryStudents, v_NumStudents)。 Insert these students into temp_table. FOR v_LoopCounter IN 1..v_NumStudents LOOP INSERT INTO temp_table (num_col, char_col) VALUES (v_HistoryStudents(v_LoopCounter), 39。In History 10139。)。 END LOOP。 END。 在包體內,包頭中的對 象可以直接引用,可以不用包名為其前綴。例如,過程 Re
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1