熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

ORACLE常用傻瓜問題1000問全集(二)

2013-11-13 12:48:00  來源: Oracle 

   如何搜索出前N條記錄?
  SELECT * FROM empLOYEE WHERE ROWNUM < n
  ORDER BY empno;
  102. 如何知道機器上的Oracle支持多少並發用戶數?
    SQL>conn internal
  SQL>show parameter processes
   db_block_size可以修改嗎?
    一般不可以﹐不建議這樣做的
   如何統計兩個表的記錄總數?
    select (select count(id) from aa)+(select count(id) from bb) 總數 from dual
   怎樣用Sql語句實現查找一列中第N大值?
    select * from
  (select t*dense_rank() over (order by sal) rank from employee)
  where rank = N
   如何在給現有的日期加上年?(
    select add_months(sysdate) from dual
   USED_UBLK為負值表示什麼意思?
    It is harmless
   Connect string是指什麼?
      應該是tnsnamesora中的服務名後面的內容
   怎樣擴大REDO LOG的大小?
      建立一個臨時的redolog組然後切換日志刪除以前的日志建立新的日志
   tablespace 是否不能大於G?
    沒有限制
   返回大於等於N的最小整數值?
    SELECT CEIL(N) FROM DUAL
   返回小於等於N的最小整數值?
    SELECT FLOOR(N) FROM DUAL
   返回當前月的最後一天?
    SELECT LAST_DAY(SYSDATE) FROM DUAL
   如何不同用戶間數據導入?
    IMP SYSTEM/MANAGER FILE=AADMP FROMUSER=USER_OLD TOUSER=USER_NEW ROWS=Y INDEXES=Y
   如何找數據庫表的主鍵字段的名稱?
    SQL>SELECT * FROM user_constraints WHERE CONSTRAINT_TYPE=P and table_name=TABLE_NAME
   兩個結果集互加的函數?
    SQL>SELECT * FROM BSEMPMS_OLD INTERSECT SELECT * FROM BSEMPMS_NEW
  SQL>SELECT * FROM BSEMPMS_OLD UNION SELECT * FROM BSEMPMS_NEW
  SQL>SELECT * FROM BSEMPMS_OLD UNION ALL SELECT * FROM BSEMPMS_NEW
   兩個結果集互減的函數?
  SQL>SELECT * FROM BSEMPMS_OLD MINUS SELECT * FROM BSEMPMS_NEW
   如何配置Sequence?
    建sequence seq_custid
    create sequence seq_custid start incrememt by
    建表時
    create table cust
    { cust_id smallint not null
    }
    insert 時
    insert into table cust
    values( seq_custnextval)
  日期的各部分的常用的的寫法
   取時間點的年份的寫法
     SELECT TO_CHAR(SYSDATEYYYY) FROM DUAL
   取時間點的月份的寫法
     SELECT TO_CHAR(SYSDATEMM) FROM DUAL
   取時間點的日的寫法
     SELECT TO_CHAR(SYSDATEDD) FROM DUAL
   取時間點的時的寫法
     SELECT TO_CHAR(SYSDATEHH) FROM DUAL
   取時間點的分的寫法
     SELECT TO_CHAR(SYSDATEMI) FROM DUAL
   取時間點的秒的寫法
     SELECT TO_CHAR(SYSDATESS) FROM DUAL
   取時間點的日期的寫法
     SELECT TRUNC(SYSDATE) FROM DUAL
   取時間點的時間的寫法
     SELECT TO_CHAR(SYSDATEHHMISS) FROM DUAL
   日期時間形態變為字符形態
     SELECT TO_CHAR(SYSDATE) FROM DUAL
   將字符串轉換成日期或時間形態
     SELECT TO_DATE(//) FROM DUAL
   返回參數的星期幾的寫法
     SELECT TO_CHAR(SYSDATED) FROM DUAL
   返回參數一年中的第幾天的寫法
     SELECT TO_CHAR(SYSDATEDDD) FROM DUAL
   返回午夜和參數中指定的時間值之間的秒數的寫法
     SELECT TO_CHAR(SYSDATESSSSS) FROM DUAL
   返回參數中一年的第幾周的寫法
     SELECT TO_CHAR(SYSDATEWW) FROM DUAL
  虛擬字段
   CURRVAL 和 nextval
    為表創建序列
    CREATE SEQUENCE EMPSEQ
    SELECT empseqcurrval FROM DUAL
    自動插入序列的數值
    INSERT INTO emp
      VALUES (empseqnextval LEWIS CLERK
           SYSDATE NULL )
   ROWNUM
    按設定排序的行的序號
    SELECT * FROM emp WHERE ROWNUM <
   ROWID
    返回行的物理地址
    SELECT ROWID ename FROM emp WHERE deptno =
   將N秒轉換為時分秒格式?
    set serverout on
    declare
     N number =
     ret varchar()
    begin
     ret = trunc(n/) || 小時 || to_char(to_date(mod(n)sssss)fmmiss)
     dbms_outputput_line(ret)
    end
   如何查詢做比較大的排序的進程?
    SELECT btablespace bsegfile# bsegblk# bblocks asid aserial# ausername aosuser astatus
    FROM v$session av$sort_usage b
    WHERE asaddr = bsession_addr
    ORDER BY btablespace bsegfile# bsegblk# bblocks
   如何查詢做比較大的排序的進程的SQL語句?
    select /*+ ORDERED */ sql_text from v$sqltext a
    where ahash_value = (
     select sql_hash_value from v$session b
     where bsid = &sid and bserial# = &serial)
    order by piece asc
   如何查找重復記錄?
    SELECT * FROM TABLE_NAME
    WHERE ROWID!=(SELECT MAX(ROWID) FROM TABLE_NAME D
     WHERE TABLE_NAMECOL=DCOL AND TABLE_NAMECOL=DCOL)
   如何刪除重復記錄?
    DELETE FROM TABLE_NAME
    WHERE ROWID!=(SELECT MAX(ROWID) FROM TABLE_NAME D
    WHERE TABLE_NAMECOL=DCOL AND TABLE_NAMECOL=DCOL)
   如何快速編譯所有視圖?
    SQL >SPOOL VIEWSQL
    SQL >SELECT ALTER VIEW ||TNAME||
    COMPILE FROM TAB
    SQL >SPOOL OFF
    然後執行VIEWSQL即可
    SQL >@VIEWSQL
   ORA SNAPSHOT TOO OLD的解決辦法
    增加MINEXTENTS的值增加區的大小設置一個高的OPTIMAL值
   事務要求的回滾段空間不夠表現為表空間用滿(ORA錯誤)回滾段擴展到達參數 MAXEXTENTS的值(ORA)的解決辦法
    向回滾段表空間添加文件或使已有的文件變大增加MAXEXTENTS的值
   如何加密ORACLE的存儲過程?
    下列存儲過程內容放在AASQL文件中
    create or replace procedure testCCB(i in number) as
    begin
     dbms_outputput_line(輸入參數是||to_char(i))
    end
    SQL>wrap iname=asql
    PL/SQL Wrapper Release Production on Tue Nov
    Copyright (c) Oracle Corporation All Rights Reserved
    Processing AAsql to AAplb
    運行AAplb
    SQL> @AAplb
   如何監控事例的等待?
    select eventsum(decode(wait_Time)) Prev
    sum(decode(wait_Time)) Currcount(*) Tot
    from v$session_Wait
    group by event order by
   如何回滾段的爭用情況?
    select name waits gets waits/gets Ratio
    from v$rollstat C v$rollname D
    where Cusn = Dusn
   如何監控表空間的 I/O 比例?
    select Btablespace_name name Bfile_name file Aphyrds pyr Aphyblkrd pbr Aphywrts pyw Aphyblkwrt pbw
    from v$filestat A dba_data_files B
    where Afile# = Bfile_id
    order by Btablespace_name
   如何監控文件系統的 I/O 比例?
    select substr(Cfile#) # substr(Cname) Name Cstatus Cbytes Dphyrds Dphywrts
    from v$datafile C v$filestat D
    where Cfile# = Dfile#
   如何在某個用戶下找所有的索引?
    select user_indexestable_name user_indexesindex_nameuniqueness column_name
    from user_ind_columns user_indexes
    where user_ind_columnsindex_name = user_indexesindex_name
     and user_ind_columnstable_name = user_indexestable_name
    order by user_indexestable_type user_indexe
From:http://tw.wingwit.com/Article/program/Oracle/201311/16604.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.