看了别人的帖子,但是是server SQL的,所以想请大家收集一下,oracle 的小语句集合。
大家帮帮忙,老鸟给新手点经验。我先来一个查询当前日期
select sysdate from dual

解决方案 »

  1.   

    查询当前数据库的名称装备和版本
    select instance_name,status,version from v$instance;
      

  2.   

    select * from v$database;
    select * from user_tables;
    select xx from dba_xxx;
    select xx from user_xxx;
    有个oracle常用经典SQL查询 可以下一下,N多。
      

  3.   

     select to_char(to_date(11,'yyyy'),'year') from dual; 
      

  4.   

    沙發   學習下生成唯一碼~select sys_guid() from dual;
      

  5.   

    检查Oracle所有回滚段的状态sql>select segment_name,status from dba_rollback_segs; 
      

  6.   

     SELECT SYSDATE  FROM DUAL   取当前系统时间
         Select trunc(sysdate) from dual 取当前日期
         Select trunc(sysdate,’MM’) from dual 取当前月的第一天
       Select trunc(sysdate,’YYYY’) from dual取当年的元旦
         Select to_char(sysdate,’ss’) from dual取当前时间秒部分
    Select to_char(sysdate,’mi’) from dual取当前时间分钟部分
    Select to_char(sysdate,’HH24’) from dual取当前时间秒小时部分
    Select to_char(sysdate,’DD’) from dual取当前时间日期部分
    Select to_char(sysdate,’MM’) from dual取当前时间月部分
    Select to_char(sysdate,’YYYY’) from dual取当前时间年部分
    Select to_char(sysdate,’w’) from dual取当前时间是一个月中的第几周(从1日开始算)
    Select to_char(sysdate,’ww’) from dual取当前时间是一年中的第几周(从1.1开始算)
    Select to_char(sysdate,’iw’) from dual取当前时间是一年中的第几周(按实际日历的)
    Select to_char(sysdate,’d’) from dual取当前时间是一周的第几天,从星期天开始,周六结束
    Select to_char(sysdate,'day') from dual 取当前日是星期几,和数据库设置的字符集有关,会输出’Tuesday’
    Select to_char(sysdate,'ddd') from dual 当前日是一年中的第几天Select Add_months(sysdate,12) from dual 取一年后的今天Select sysdate-(sysdate-100) from dual 取两个日期之间的天数
    Select (sysdate-(sysdate-100))*1440 from dual 取两个日期之间的分钟数
    Select (sysdate-(sysdate-100))*1440*60 from dual 取两个日期之间的秒数
    Select months_between(sysdate,sysdate-100) from dual 取两个日期间隔的月份
    Select last_day(sysdate) from dual 取当前月的最后天
    Select next_day(sysdate,’1’) from dual 取当前日之后第一个星期天,里面的’1’表示取星期日,如果今天正好是星期日,则会显示下一个星期日
      

  7.   

    ☆dba_开头..... dba_users 数据库用户信息 dba_segments 表段信息 dba_extents 数据区信息 dba_objects 数据库对象信息 dba_tablespaces 数据库表空间信息 dba_data_files 数据文件设置信息 dba_temp_files 临时数据文件信息 dba_rollback_segs 回滚段信息 dba_ts_quotas 用户表空间配额信息 dba_free_space 数据库空闲空间信息 dba_profiles 数据库用户资源限制信息 dba_sys_privs 用户的系统权限信息 dba_tab_privs 用户具有的对象权限信息 dba_col_privs 用户具有的列对象权限信息 dba_role_privs 用户具有的角色信息 dba_audit_trail 审计跟踪记录信息 dba_stmt_audit_opts 审计设置信息 dba_audit_object 对象审计结果信息 dba_audit_session 会话审计结果信息 dba_indexes 用户模式的索引信息 ☆user_开头 user_objects 用户对象信息 user_source 数据库用户的所有资源对象信息 user_segments 用户的表段信息 user_tables 用户的表对象信息 user_tab_columns 用户的表列信息 user_constraints 用户的对象约束信息 user_sys_privs 当前用户的系统权限信息 user_tab_privs 当前用户的对象权限信息 user_col_privs 当前用户的表列权限信息 user_role_privs 当前用户的角色权限信息 user_indexes 用户的索引信息 user_ind_columns 用户的索引对应的表列信息 user_cons_columns 用户的约束对应的表列信息 user_clusters 用户的所有簇信息 user_clu_columns 用户的簇所包含的内容信息 user_cluster_hash_expressions 散列簇的信息 ☆v$开头 v$database 数据库信息 v$datafile 数据文件信息 v$controlfile 控制文件信息 v$logfile 重做日志信息 v$instance 数据库实例信息 v$log 日志组信息 v$loghist 日志历史信息 v$sga 数据库SGA信息 v$parameter 初始化参数信息 v$process 数据库服务器进程信息 v$bgprocess 数据库后台进程信息 v$controlfile_record_section 控制文件记载的各部分信息 v$thread 线程信息 v$datafile_header 数据文件头所记载的信息 v$archived_log 归档日志信息 v$archive_dest 归档日志的设置信息 v$logmnr_contents 归档日志分析的DML DDL结果信息 v$logmnr_dictionary 日志分析的字典文件信息 v$logmnr_logs 日志分析的日志列表信息 v$tablespace 表空间信息 v$tempfile 临时文件信息 v$filestat 数据文件的I/O统计信息 v$undostat Undo数据信息 v$rollname 在线回滚段信息 v$session 会话信息 v$transaction 事务信息 v$rollstat 回滚段统计信息 v$pwfile_users 特权用户信息 v$sqlarea 当前查询过的sql语句访问过的资源及相关的信息 v$sql 与v$sqlarea基本相同的相关信息 v$sysstat 数据库系统状态信息 ☆ all_开头 all_users 数据库所有用户的信息 all_objects 数据库所有的对象的信息 all_def_audit_opts 所有默认的审计设置信息 all_tables 所有的表对象信息 all_indexes 所有的数据库对象索引的信息 
    ☆session_开头 session_roles 会话的角色信息 session_privs 会话的权限信息 ☆index_开头 index_stats 索引的设置和存储信息 ☆伪表 dual 系统伪列表信息 
      

  8.   

    查询服务器端配置的字符集。在sqlplus中以dba用户执行:   
      select   tab1.aa||'_'||tab2.bb||'.'||tab3.cc   from   (select   VALUE$   aa   from   sys.props$   where   name='NLS_LANGUAGE')tab1,(select   VALUE$   bb   from   sys.props$   where   name='NLS_ISO_CURRENCY')tab2,(select   VALUE$   cc   from   sys.props$   where   name='NLS_CHARACTERSET')tab3;  
      

  9.   

    查询性能较差的语句
    SELECT ADDRESS, SQL_TEXT, buffer_gets, executions, buffer_gets/executions AVG 
            FROM v$sqlarea 
            WHERE executions>0 AND buffer_gets > 100000
      

  10.   

    --tom写的print_table
    --将一个查询的结果 记录by记录 地列出来
    create or replace procedure print_table( p_query in varchar2 )
    AUTHID CURRENT_USER
    is
        l_theCursor integer default dbms_sql.open_cursor;
        l_columnValue varchar2(4000);
        l_status integer;
        l_descTbl dbms_sql.desc_tab;
        l_colCnt number;
    begin
        execute immediate
        'alter session set
            nls_date_format=''dd-mon-yyyy hh24:mi:ss'' ';    dbms_sql.parse( l_theCursor, p_query, dbms_sql.native );
        dbms_sql.describe_columns
        ( l_theCursor, l_colCnt, l_descTbl );    for i in 1 .. l_colCnt loop
            dbms_sql.define_column
            (l_theCursor, i, l_columnValue, 4000);
        end loop;    l_status := dbms_sql.execute(l_theCursor);    while ( dbms_sql.fetch_rows(l_theCursor) > 0 ) loop
            for i in 1 .. l_colCnt loop
                dbms_sql.column_value
                ( l_theCursor, i, l_columnValue );
                dbms_output.put_line
                ( rpad( l_descTbl(i).col_name, 30 )
                  || ': ' ||
                  l_columnValue );
            end loop;
            dbms_output.put_line( '-----------------' );
        end loop;
        execute immediate
            'alter session set nls_date_format=''dd-MON-rr'' ';
    exception
        when others then
          execute immediate
              'alter session set nls_date_format=''dd-MON-rr'' ';
          raise;
    end;
    /
      

  11.   

    Find out the duplicate records in a Table
    Code: 
    查找一个表中的重复记录SELECT primary_key FROM table_name
    MINUS
    (
    SELECT DISTINCT primary_key
    FROM table_name
    )
    You can also use * instead of the primary_key.
    18. Description: This Script will help you to find out which Database you are presently
    Connected to? If You are working on multiple Databases on different Servers using SQL*Net or Net8.
    Code: select distinct A.name DATABASE,
    B.machine SERVER
    from V$database A, V$session B
    where b.username is null
    /
      

  12.   

    NLSSORT(),用来进行语言排序拼音
    SELECT * FROM TEAM ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_PINYIN_M')
    笔划
    SELECT * FROM TEAM ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_STROKE_M')
    部首
    SELECT * FROM TEAM ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_RADICAL_M')
      

  13.   

    select text from user_source where table_name=''
      

  14.   

    我顶
    host dir
    host ls
    edit
      

  15.   

    我好久没在这里逛了。
    给个掉了牙的吧
    select count(1) from table where x=y
      

  16.   

    高手们如何创建Oracle 的实例!!!我做恢复用
      

  17.   

    sqlplus /nolog  连数据库conn / as sysdba;  用账户名连接数据库startup;  --启动oracle例程archive log list;exitalter system archive log cunnent;
    shutdown immediate;
    startup nomount;alter database mount;alter database open;selectcome from v$datafile;
      

  18.   

    随机数的生成:(100-200之间)
    select round(dbms_random.value(100,200))
    from   dual
      

  19.   

    字符串倒置函数:
    select reverse('abcdefg')
    from   dual
    -------------------------
    gfedcba
      

  20.   

    取得本机IP和服务器IP:
    select sys_context('userenv','ip_address'),
           utl_inaddr.get_host_address
    from   dual
      

  21.   

    这个也要MARK一下,好多东西学习。