上一篇文章中介紹了如何對Oracle中Struct和Array進行Explain Plan,EXPLAIN PLAN FOR SELECT * FROM TABLE(DEPT_ARRAY(DEPARTMENT_TYPE( 1, --DNO NUMBER (10), 'NAME', --NAME VARCHAR2 (50),
以前兩篇文章介紹了使用Collection和更新Collection的方法,這篇文章將要介紹如果需要產生一個新的Collection並且向其中添加資料的方法。procedure insert_object(d in dept_array, d2 out dept_array) isbegin --First way to insert data into a new array. SELECT CAST(MULTISET (SELECT DNO, name, loc
我們在寫SQL語句的時候經常需要用到行與列的轉換問題,對於一個新手來說可能比較困難,其實你只要能夠熟練運用Decode和Sum函數,這個問題就迎刃而解.Create table test (name char(10),km char(10),cj Number)insert into test values('張三','語文',80)insert into test values('張三','數學',86)insert into test
為了減少串連Oracle資料庫的數量,需要將多條資料作為變數一次傳入Oracle的預存程序中。方法如下:步驟一:定義物件類型。 CREATE TYPE department_type AS OBJECT (DNO NUMBER (10),NAME VARCHAR2 (50),LOCATION VARCHAR2 (50));步驟二:定義一個物件類型的數組對象。CREATE TYPE dept_array AS TABLE OF department_type;步驟三:定義預存程序來插入資料。CRE
首先,需要清楚地明白,我們怎樣知道在一個oracle sql語句中,索引用不到。通過顯示SQL語句的執行計畫,即可知道整個SQL語句是如何在oracle內部分步執行的。其次,分析oracle不使用索引的可能原因。1、where字句中,索引列被使用函數了,並且該列之上沒有簡曆函數索引。這是最常見的現象。2、同一個表中的兩列(有索引)進行比較時,索引有時不被使用。3、NULL值。where字句中出現is null或is not null時,索引就不被使用。4、當where字句中存在not
在實際工作中,有時候需要修改使用者名稱,而通常的做法是exp imp這樣的方式,而如果資料量大的話exp imp的方式會很浪費時間,所以下面寫上如何通過修改ORACLE基表的方式來修改使用者名稱。-- 直接修改底層表USER$更改使用者名稱(該方法在Oracle9i中測試通過)SQL> UPDATE USER$ SET NAME='TT' WHERE USER#=91;已更新 1 行。SQL> COMMIT;提交完成。SQL> ALTER SYSTEM
分頁查詢格式:SELECT * FROM (SELECT A.*, ROWNUM RN FROM(SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40)WHERE RN >= 21 其中最內層的查詢SELECT * FROM TABLE_NAME表示不進行翻頁的原始查詢語句。ROWNUM <= 40和RN>=
Envirement: windows XP, oracle 10gProblem: when I open the EM browser, it shows that: "The database status is currently unavailable. It is possible that the database is in mount or nomount state..." then I go to start up, I input the OS and