首先,需要清楚地明白,我們怎樣知道在一個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
關於BCP的用法法,網上有很多資料,但要經過自已的實踐來證實才能為已所用,因網上的東東有些是轉來轉去,會有遺誤之處,所以對網上的相關資料要廣泛地多多地參考,不能迷信某一家之言,因為IT相關的東東存於著不同的平台不同版本不同的習慣不同的定勢,所以也就會有任何可能和不可能的事情發生,本人實踐平台都是有Windows 2003 server下的,Sybase ASE 12.5的,Oracle9i關於BCP的匯出匯入,需要注意的是:如果從一個sybase庫中導到另一個sybase庫中,參數選取很重要:
今天使用者要求所有資料為0的不能參與求平均值,思路是avg函數本身就對為空白的資料不參與運算所以只要把為零的資料轉換成空就可以了,想了一下用case語句可以實現但在網上找了一下發現decode這個函數哈很不錯的剛好能滿足我的需求下面是他的用法decode(條件,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,預設值)該函數的含義如下:IF 條件=值1 THEN RETURN(翻譯值1)ELSIF 條件=值2 THEN RETURN(翻譯值2) ......ELSIF
1.查看所有使用者: select * from dba_users; select * from all_users; select * from user_users;2.查看使用者或角色系統許可權(直接賦值給使用者或角色的系統許可權): select * from dba_sys_privs; select * from user_sys_privs; 3.查看角色(只能查看登陸使用者擁有的角色)所包含的許可權sql>select * from