Time of Update: 2018-12-04
資料庫名 就是資料庫的名稱標識,如myOracle, 這種叫法一般只適用於單機; 全域資料庫名 就是資料庫處於一個網路中的名稱標識。比如資料庫宿主機的域為mydomain, 則資料庫的全域資料庫名為myOracle.mydomain;實際上myOracle和myOracle.mydomain兩者指的是同一個資料庫.即:全域資料庫名 = 資料庫名+"."+網路位置(宿主機所在的域)Oracle9i 的全域資料庫名稱由「資料庫名稱」與「網網域名稱稱」所組成,其中「資料庫名稱」設定於
Time of Update: 2018-12-04
Dual表是Oracle中的一個實際存在的表,任何使用者均可讀取,常用在沒有目標表的Select語句中。 Dual表由Oracle連同資料字典一同建立,所有的使用者都可以用名稱Dual訪問該表。這個表裡只有一列DUMMY,該列定義為VARCHAR2(1)類型,有一行值X。 從Dual表選擇資料常被用來通過SELECT語句計算常數運算式,由於Dual只有一行資料,所以常數只返回一次。 例如:查看當前日期、時間SQL> select sysdate from dual;
Time of Update: 2018-12-04
情況一:使用sqlplus登入正常輸入使用者名稱的口令,就會報錯,因為SYS是在資料庫之外的超級管理員,所以我們在登入的時候要在輸入口令:口令+as sysdba(比如:123456 as sysdba)情況二:使用PL/SQL登入這是我們平時的登入資料庫很常規的操作,但是用SYS作為使用者名稱登入的時候就會報ORA-28009:connection as SYS should be as SYSDBA OR
Time of Update: 2018-12-04
WebService無法串連Oracle2008-7-9cheungmine1 問題的來源:我在WebService中無法串連Oracle10g 2 解決的辦法: 9i: ORACLE_HOME 目錄增加使用者Authenticated Users (讀和啟動並執行許可權)或 10g: OracleClient10g 目錄增加使用者Authenticated Users (讀和啟動並執行許可權) ORACLE_HOME 是oracle安裝的主目錄; OracleClient10g是1
Time of Update: 2018-12-04
Oracle中,可以使用 Instr 函數對某個字串進行判斷,判斷其是否含有指定的字元。其文法為:Instr(string, substring, position, occurrence)其中string:代表源字串;substring:代表想從源字串中尋找的子串;position:代表尋找的開始位置,該參數可選的,預設為 1;預設尋找順序為從左至右。當起始位置為負數的時候,從右邊開始尋找。occurrence:代表想從源字元中尋找出第幾次出現的substring,該參數也是可選的,預設為1
Time of Update: 2018-12-04
to_date()與24小時製表示法及mm分鐘的顯示: 一、在使用Oracle的to_date函數來做日期轉換時,很多Java程式員也許會直接的採用“yyyy-MM-dd HH:mm:ss”的格式作為格式進行轉換,但是在Oracle中會引起錯誤:“ORA 01810 格式代碼出現兩次”。如:select to_date( '2005-01-01 13:14:20 ', 'yyyy-MM-dd HH24:mm:ss ') from
Time of Update: 2018-12-04
ORACLE設定主鍵是不會自動增加的,這個和SqlServer是不一樣的,在oracle中所以必須用 序列 和 觸發器 來完成主鍵的遞增。1建立資料表create table Test_Increase( userid number(10) primary key, /*建立主鍵*/ username varchar2(20) ); create table Test_Increase(
Time of Update: 2018-12-04
轉帖於:http://www.idb-stock.net/idb/2011/06/23/184.html session id 在一些審計、統計分析中還是非常用的,本文介紹常見的擷取oracle session id的方法:1.從v$mystat視圖擷取oracle當前會話的session id(sid):view plaincopy to clipboardprint?select sidfrom v$mystatwhere rownum = 1;select sid from
Time of Update: 2018-12-04
首先查看錶空間的名字和所屬檔案 select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name; 1.增加資料檔案 ALTER TABLESPACE ULTIMUSDB ADD DATAFILE '/oracle/oradata/db/ULTIMUSDB02.dbf' SIZE 1000M;
Time of Update: 2018-12-04
簡要比較: replace:字串層級的代替 如:SELECT REPLACE('acdd','cd','ef') FROM dual; →aefd translate:字元層級的代替 如:SELECT TRANSLATE('acdd','cd','ef') FROM dual; →aeff 分別詳解: replace: 文法:REPLACE ( char , search_string [, replacement_string] )
Time of Update: 2018-12-04
解析Oracle資料掃描 Oracle SQL查詢最佳化(2)2、 提高局部範圍資料掃描執行效能的原理:2.1查詢條件的類別與作用: 當我們發起一個帶有條件的查詢SQL語句時,通常會賦予該語句多個查詢條件,在這些查詢條件中,通常會有一個或者幾個查詢條件會作為資料檢索的發起者,這些作為發起者的查詢條件稱為“驅動查詢條件”;同時那些不作為資料檢索發起者的查詢條件,在整個查詢資料的過程中,只會起到過濾由驅動查詢條件所決定的資料範圍內資料的作用,這些查詢條件就稱為“過濾查詢條件”。
Time of Update: 2018-12-04
過濾型局部範圍掃描 在日常應用開發過程中,經常會遇到需要判斷滿足某些查詢條件的集合是否存在,其實這種操作本質上是一種特殊的過濾操作,既需要用一個集合為源,另一個集合為判斷標準,使用這個判斷標準作為過濾器去過濾源集合。 在執行這種操作過程中,最理想的執行方式是當遇到第一個滿足條件的記錄時就停止整個執行過程返回結果,因為此時已經確認了滿足條件的集合的存在,如果此時批量數組已經被填充滿,那麼就可以作為結果返回了。這其實是在執行這種過濾操作的過程中使用了局部範圍掃描。
Time of Update: 2018-12-04
靈活應用ROWNUM虛擬列 Rownum並不是表中實際存在的物理列,而是一個可以被使用在任何SQL語句中的虛擬列。如果能夠正確的理解Rownum概念和特性,那麼就可以將其應用在Where條件中,引導最佳化器只處理指定的行數,因此可見這屬於局部範圍掃描範疇。但是如果不瞭解Rownum的特性就草率的使用它,則有可能無法輸出期望的結果,同時也無法按照設想的資料掃描方式運行。現在討論一下如何利用Rownum的特性實現局部範圍掃描。特性一:應保證資料範圍足夠大。看如下樣本語句: Select
Time of Update: 2018-12-04
發現只通過索引就能擷取查詢資料的機會
Time of Update: 2018-12-04
之前我們討論了在資料庫中資料讀取操作的類型,重點討論了對資料讀取操作大為有益的局部範圍掃描的資料讀取方式,同時還探討了資料庫最佳化器模式對於啟用局部範圍掃描的影響,以及啟用局部範圍掃描的前提下最佳化器設定的原則,之後我們通過探討一個語句中查詢條件的類別及其所起到的作用,並通過查詢條件的類別和作用,得出了提升局部範圍資料掃描的原則,即“局部範圍掃描效能提升策略描述矩陣”。
Time of Update: 2018-12-04
經常有同事諮詢oracle資料庫字元集相關的問題,如在不同資料庫做資料移轉、同其它系統交換資料等,常常因為字元集不同而導致遷移失敗或資料庫內資料變成亂碼。現在我將oracle字元集相關的一些知識做個簡單總結,希望對大家今後的工作有所協助。 一、什麼是oracle字元集 Oracle字元集是一個位元組資料的解釋的符號集合,有大小之分,有相互的包容關係。ORACLE
Time of Update: 2018-12-04
在Oracle/PLSQL中,instr函數返回要截取的字串在源字串中的位置。文法如下:instr( string1, string2 [, start_position [, nth_appearance ] ] )string1 源字串,要在此字串中尋找。string2 要在string1中尋找的字串.start_position 代表string1 的哪個位置開始尋找。此參數可選,如果省略預設為1.
Time of Update: 2018-12-04
author:skatetime:2010/10/19insert最佳化要想提高insert的速度,首先要知道什麼影響insert慢,在執行insert的過程中產生redo和undo,要想提高insert的速度,在充分利用系統資源的條件下就要盡量減少insert產生的redo和undo,undo的大小沒辦法改變,但是我們可以改變redo的量。下面是提高insert方法。1. 增加hint /*+ append */
Time of Update: 2018-12-04
Oracle資料庫的BULK COLLECT用法之批量增刪改的相關知識是本文我們主要要介紹的內容,FORALL語句的一個關鍵性改進,它可以大大簡化代碼,並且對於那些要在PL/SQL程式中更新很多行資料的程式來說,它可顯著提高其效能。 用FORALL來增強DML的處理能力 Oracle為Oracle8i中的PL/SQL引入了兩個新的資料操縱語言(DML)語句:BULK COLLECT和FORALL。這兩個語句在PL/SQL內部進行一種數組處理;BULK
Time of Update: 2018-12-04
我們要做到不但會寫SQL,還要做到寫出效能優良的SQL,以下為筆者學習、摘錄、並匯總部分資料與大家分享! (1) 選擇最有效率的表名順序(只在基於規則的最佳化器中有效):ORACLE的解析器按照從右至左的順序處理FROM子句中的表名,FROM子句中寫在最後的表(基礎資料表 driving table)將被最先處理,在FROM子句中包含多個表的情況下,你必須選擇記錄條數最少的表作為基礎資料表。如果有3個以上的表串連查詢, 那就需要選擇交叉表(intersection