Time of Update: 2017-01-18
大部分情況下,這種動態產生的sql查詢語句寫法如下: 複製代碼 代碼如下:select A表.欄位1,A表.欄位2,B表.欄位返回,C表.欄位返回 from A表 ,B表,C表 [where A表,B表,C表關聯及各自的條件陳述式] 但是這個方法有一個缺點,那就是在動態產生這個查詢語句的商務邏輯程式仍然很複雜。這裡就介紹一個降低商務邏輯複雜度的查詢sql產生方式。其文法結構如下: 複製代碼 代碼如下:select A表.欄位1,A表.欄位2,B表.欄位,C表.欄位 from A表 [where
Time of Update: 2017-01-18
一、系統的預設使用者1)sys使用者是超級使用者,具有最高許可權,具有sysdba角色,有create database的許可權,該使用者預設的密碼是sys。登入語句:SQL> conn sys/sys as sysdba;2)system使用者是管理操作員,許可權也很大。具有sysoper角色,沒有create database的許可權,預設的密碼是manager。登入語句:SQL> conn
Time of Update: 2017-01-18
1. 停應用程式層的各種程式。 2. 停oralce的監聽進程: $lsnrctl stop 3. 在獨佔的系統使用者下,備份控制檔案: SQL>alter database backup controlfile to trace; 4. 在獨佔的系統使用者下,手工切換重作記錄檔,確保當前已修改過的資料存入檔案: SQL>alter system switch logfile; 5.
Time of Update: 2017-01-18
Hash分區是通過對分區鍵運用Hash演算法從而決定資料的分區歸屬。使用Hash分區有什麼優點呢?常用的分區表所具有的優點:如提高資料可用行,減少管理負擔,改善語句效能等優點,hash分區同樣擁有。此外,由於Hash分區表是按分區鍵的hash計算結果來決定其分區的,而特定的分區鍵其hash值是固定的,也就是說Hash分區表的資料是按分區索引值來聚集的,同樣的分區鍵肯定在同一分區。比如,在證券行業,我們經常查詢某一隻股票的K線,假設表的結構如下:複製代碼 代碼如下:create table
Time of Update: 2017-01-18
安裝完 Oracle11g 之後,想開啟內建的 SQL Plus 來學習,然後按照提示用 sys 使用者來串連資料庫,可輸了好幾次都提示一個錯誤: error: the account is locked 可能是下面幾個原因。 1. 嘗試多次登入未成功(可能密碼不正確); 2. 此使用者被管理員手工鎖定; 3. 使用者密碼到期、未按時修改密碼,等等。 看來 scott 這個使用者肯定是登陸不了了,然後我用嘗試著用 system 這個使用者登入,我記得在安裝 Oracle 11g
Time of Update: 2017-01-18
進入sqlplus SQL> set timing on SQL> SQL> select count(*) from comm_human_role; COUNT(*) ---------- 866 Elapsed: 00:00:00.05 以上數字輸出分別是:Hours:Minutes:Seconds.Milliseconds 即用了0.05秒的時間執行,相當於50毫秒。 時間如果是這樣的表示:00: 03: 235.78 總共用的時間為235.78秒,
Time of Update: 2017-01-18
Oracle的並行查詢是使用多個作業系統層級的Server Process來同時完成一個SQL查詢,本文講解Oracle資料庫並行查詢出錯的解決方案如下:1、錯誤描述ORA-12801: 並行查詢服務器P007中發出錯誤訊號ORA-01722:無效數字12801.00000 -"error signaled in parallel query server %s"*Cause: A parallel query server reached an exception
Time of Update: 2017-01-18
在Oracle中如果刪除了表中的某一條資料,還可以通過復原操作(rollback)進行復原,假如想清空一張 表的資料,但是又不想使其能進行復原操作,就可以立刻釋放資源,這時就需要使用截斷表了。它的主要功能就是徹底刪除資料,使其不能進行復原。這裡我打個比方大家就立刻能明了它的作用。大家眾所周知,當我們在自己的PC(personcomputer)上刪除某一個檔案,它並沒有徹底刪除而是進入了資源回收筒,你要在資源回收筒中再將其刪除才算徹底清除。截斷表就相當於直接將資料從pc上刪除,而不會清除。
Time of Update: 2017-01-18
說明:以下作業環境在CentOS 6.4 + Oracle 11gR2(Oracle安裝在ORACLE_BASE=/opt/oracle中,其ORACLE_HOME=/opt/oracle/11g)用OUI安裝並配置Oracle資料庫後,Oracle就開啟了(包括:資料庫執行個體、監聽器、EM)。在重啟作業系統之後,Oracle預設是沒有啟動的。使用如下命令查看Oracle相關服務是否已啟動:ps aux | grep ora_
Time of Update: 2017-01-18
第一步:建立一個表。 複製代碼 代碼如下: create table Test_Table ( ID number(11) primary key, Name varchar(50) not null, Value1 varchar(50) not null ) 第二步:建立一個自增序列以此提供調用函數。 複製代碼 代碼如下: create sequence AutoID start with 1 //根據需要自己可修改該數值 increment by 1 //步長值 minvalue 1
Time of Update: 2017-01-18
在Oracle中若刪除一個不存在的表,如 "DROP TABLE notExistTable",則會提示: ORA-00942:表或視圖不存在, 若使用程式執行該語句則會報異常,這就需要我們再刪除表前判斷該表是否存在,若存在則刪除. 下面是不使用預存程序實現刪除表的SQL: 複製代碼 代碼如下: <span style="font-family:Times New Roman;font-size:18px;">DECLARE num NUMBER; BEGIN SELECT
Time of Update: 2017-01-18
總覺得使用windows跑oracle是不靠譜的事情,可以這個世界上總有很多人喜歡做類似這樣的事情,對於資料庫比較常見的兩件事情:rman和刪除dg備庫歸檔日誌,在linux/unix平台上使用shell實現很簡單,可是跑到win裡面,就變的煩了,不是因為其麻煩,而是因為用的人少,不知道怎麼下手處理該事情,我編寫了簡單的實現初級功能的win下面rman備份和刪除備庫歸檔日誌指令碼,供大家參考,也更加歡迎朋友提出來更加好的處理方法(win是真心的不懂)rman備份指令碼複製代碼 代碼如下:
Time of Update: 2017-01-18
1.登陸到伺服器上建立rman自動刪除兩天前的歸檔日誌指令碼[oracle@108 ~]$ cat >>del_ora_log.rman <<EOF crosscheck archivelog all;delete noprompt expired archivelog all;delete noprompt force archivelog until time 'sysdate -2';
Time of Update: 2017-01-18
複製代碼 代碼如下: -- Oracle 取上周一到周末的sql -- 這樣取的是 在一周內第幾天,是以周日為開始的 select to_char(to_date('20130906','yyyymmdd'),'d') from dual; --結果:6 注釋:2013.09.06是周五,為本周的第六天 select to_char(sysdate+(2-to_char(sysdate,'d'))-7,'yyyymmdd') from dual;---上周一 select
Time of Update: 2017-01-18
1. select * from emp;2. select empno, ename, job from emp;3. select empno 編號, ename 姓名, job 工作 from emp;4. select job from emp;5. select distinct job from emp;6. select distinct empno, job from emp;說明:因為僱員編號不重複, 所以此時證明所有的列沒有重複,所以不能消除掉重複的列.7.
Time of Update: 2017-01-18
今天碰到一個比較奇怪的問題: 在用戶端上使用sqlplus用普通使用者可以登入,但是system以及sys使用者均無法登入,提示ORA-12154: TNS: 無法解析指定的串連標識符 SQL> conn system@webdata 輸入口令: ERROR: ORA-12154: TNS: 無法解析指定的串連標識符 SQL> conn xgplat@webdata 輸入口令: 已串連。 本來以為用戶端是32位的緣故,就在oracle伺服器上用sqlplus登入,也還是一樣 SQL&
Time of Update: 2017-01-18
在Oracle資料庫操縱中,登入Oracle帳號時提示失敗,並且Oracle帳號頻繁被鎖定。造成此故障的原因是什麼呢?本文就介紹了這一過程,經由過程慢慢排查我們就能找到該故障的原因了。 下面記錄下尋找這個題目的步調。 1. 找到帳號被鎖按時候 哄騙sqlplus或者sqldeveloper,查詢帳號被鎖定的時候,相干語句如下: --批改當前會話的日期顯示格局 alter session set nls_date_format = ""yyyy-MM-dd hh24:mi:ss"";
Time of Update: 2017-01-18
用distinct關鍵字只能過濾查詢欄位中所有記錄相同的(記錄集相同),而如果要指定一個欄位卻沒有效果,另外distinct關鍵字會排序,效率很低 。 select distinct name from t1 能消除重複記錄,但只能取一個欄位,現在要同時取id,name這2個欄位的值。 select distinct id,name from t1 可以取多個欄位,但只能消除這2個欄位值全部相同的記錄 所以用distinct達不到想要的效果,用group by 可以解決這個問題。
Time of Update: 2017-01-18
Data Guard主要提供兩個服務:1)Redo傳輸服務:即把Primay端的Redo日誌傳輸到一個或多個Standby目的地。2)Redo應用服務:即在Standby端應用從Primay端傳輸過來的Redo日誌。本文先講講其中的Redo傳輸服務。1、使用ARCn傳輸Redo日誌預設情況下採用ARCn傳輸redo日誌,不過只有在最高效能模式下才可以使用ARCn(具體可參考《[Oracle] Data Guard 之
Time of Update: 2017-01-18
oracle佔用cpu過高怎麼處理,本文將介紹有關oracle進程CPU佔用率過高的問題,需要瞭解跟多的朋友可以參考下1:首先使用TOP命令傳到佔用CPU高的SPID號 PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND 3575 oracle 1 12 0 0K 0K run 748.6H 24.98% oracle 3571 oracle 1 22 0 0K 0K sleep 706.2H 22.84% oracle