六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 57|回复: 0

sql小结(1)

[复制链接]

升级  90%

11

主题

11

主题

11

主题

童生

Rank: 1

积分
45
 楼主| 发表于 2013-1-15 02:44:51 | 显示全部楼层 |阅读模式
//在crud中调用函数                                                                        select Func_getUTCDate() from dual;------------------------------------------------------------------------------------------//oracle的分页select * from (select t. * , rownum as linenum  from  t_person t where rownum < 10 ) where linenum > 4;select * from T_person t where t.fatherid = 0 connect by prior t.id = t.fatherid;------------------------------------------------------------------------------------------ //创建临时表 create global temporary table temp_tbl(col_a varchar2(30)) on commit delete rows  create global temporary table temp_tbl(col_a varchar2(30)) on commit preserve rows ------------------------------------------------------------------------------------------ alter system kill session 'sid,serial#';  select * from v$session where username  = upper('scott');------------------------------------------------------------------------------------------//decode的高级版本 select (case when 10> 5 then 'ok' when 10=5 then 'fail' else 'lll' end) from dual;一个汉字在oracle中是占用了两个字节的。 英文字母或符号只占用一个字节。 Char(10)最多可存放5个汉字。------------------------------------------------------------------------------------------create materialized view t_user_money         refresh         start with sysdate next sysdate + 5/1440         with rowid         as         select username, money from t_u_money@UMLink;commit;------------------------------------------------------------------------------------------手动刷新快照 begin dbms_refresh.refresh('"CS"."SN_ANSON"'); end; ------------------------------------------------------------------------------------------//第一种方法(这也是默认的方法on demand) create materialized view test_view  refresh  force on demand start with sysdate next sysdate + 1/1440   --(注意)系统会自动创建job,每分钟更新一次 as select * from emp;//第二种方法 create materialized view test_view  refresh  force on commit  as select * from emp;------------------------------------------------------------------------------------------//自定义补充的格式 SQL>  select lpad ( 'xuxu',20,'*') from dual;LPAD('DAGA',20,'*')--------------------****************xuxu------------------------------------------------------------------------------------------0是一个特殊的值,它在oracle中存储为128.  //手工删除物理上的db文件后,造成启动失败处理如下:alter database datafile '/opt/oracle/oradata/lbs8.dbf'offline drop;//字符串,从1开始,左包括select t.*, t.rowid from t_task t order by to_number(substr(t.id,5));最高效的删除重复记录方法 ( 因为使用了ROWID)例子: DELETE FROM EMP EWHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP X WHERE X.EMP_NO = E.EMP_NO);select substr('hello',0,3) from dual;和select substr('hello',1,3)from dual ;相同-------------------------------------------------------------------------------------------SQL> select * from user_role_privs;USERNAME         GRANTED_ROLE       ADMIN_OPTION DEFAULT_ROLE OS_GRANTED---------------- ------------------ ------------ ------------ ----------SCOTT            CONNECT            NO           YES          NOshow parameter;//显示oracle的系统参数select * from v$version;alter user scott account unlock;//查看表空间的freeselect * from dba_free_space;#显示每条sql语句占用的内存select sql_text ,sharable_mem from v$sql where sharable_mem > '100000' order by sharable_mem ;select * from v$sgastat; --显式SGA的状态信息。 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表