Oracleqg111钱柜娱乐官网 Sql语句


查阅oracle中运行的sql语句
Select Last_Load_Time, First_Load_Time, Sql_Text From V$sql
where rownum < 20 and module=’w3wp.exe’
order by Last_Load_Time desc


翻开数据修改记录
select object_name, created,last_ddl_time from user_objects order by
last_ddl_time desc


光阴格式化
TO_DATE(‘2014/5/22 20:00:35’, ‘yyyy-mm-dd hh24:mi:ss’)

–add(添加视图、表格、存储过程、函数)
CREATE TABLE “BASE_MANAGERANGE”  (
   “BASE_MANAGERANGEOID” VARCHAR2(40)                    NOT NULL,
   “RANGECODE”          VARCHAR2(40),
   “RANGENAME”          VARCHAR2(300),
   “PARENTRANGEID”      VARCHAR2(40),
   “ISMULTILINGUAL”     INT,
   “KEYID”              VARCHAR2(40)                    NOT NULL,
   “LEVEL”              INT,
   “REMARK”             VARCHAR2(100),
   CONSTRAINT PK_BASE_MANAGERANGE PRIMARY KEY
(“BASE_MANAGERANGEOID”)
);

–update(修改表结构、数据)
ALTER TABLE (表名) ADD (列名 数据类型);
ALTER TABLE (表名) MODIFY (列名 数据类型);
ALTER TABLE (表名) RENAME COLUMN (当前列名) TO (新列名);
ALTER TABLE (表名) DROP COLUMN (列名);
ALTER TABLE (当前表名) RENAME TO (新表名);
e.g. UPDATE Bm_Buyerdata b SET b.sessionnum=’116′ WHERE
b.sessionnum=’117′;

–delete(删除数据、表格)
DROP TABLE “BASE_MANAGERANGE”
DELETE FROM Bm_Buyerdata b WHERE b.sessionnum=’dfasdfsadf’;

— 排序规则
SCHINESE_RADICAL_M 遵照部首(第一顺序)、笔划(第二相继)排序
SCHINESE_STROKE_M 依据笔划(第一逐个)、部首(第二逐个)排序
SCHINESE_PINYIN_M 依据拼音排序,系统的默认排序格局为拼音排序
e.g. select * from dept order by
nlssort(name,’NLS_SORT=SCHINESE_STROKE_M’);

— order时null排序的拍卖
1)不加“关照”的情况下,大家得以把这些NULL值假想为所有内容中值是最大的,由此,升序排序后NULL值在终极,倒序排序后NULL值在最前!
2)特殊“关照”的情形下,当指定“NULLS
FIRST”时,无论是升序排序依旧倒序排序,NULL值都会排列在最前面;当指定“NULLS
LAST”时,无论是升序排序仍然倒序排序,NULL值都会排列在终极面。

— 常用函数
1、 多行统一为一列 wmsys.wm_concat(col1) 在oracle 10下使用
轮换默认的“,”分隔符,使用replace(wmsys.wm_concat(col1), ‘,’,’;’);
扩展其他的内容 wmsys.wm_concat(col1 || ‘ 单位(‘ || col2 || ‘)’ )

— rownum 大于的题目
rowid 与 rownum 虽都被誉为伪列,但它们的存在情势是不雷同的:
rowid
是物理存在的,表示记录在表空间中的唯一位置ID,在DB中是绝无仅有的。只要记下没被移动过,rowid是不变的。
因为rownum总是从1始发的,第一条不满足去掉的话,第二条的rownum
又成了1。依此类推,所以永远不曾满意条件的笔录。可以如此敞亮:rownum是一个行列,是Oracle数据库从数据文件或缓冲区中读取数据的逐条。
所以select * from table1 where rownum > 1始终得到不到值
没错的做法是 select * from (select rownum rownum_, t.* from table1 t)
where rownum_ > 1

— 子查询中不可以采纳order by的题目
在From 语句中出现的子查询被号称 inline view(内联视图),在where
语句中冒出的子查询被称之为nested subquery(嵌套子查询)。
经测试讲明在嵌套子查询中不允许出现order by 语句
select * from scott.emp
where ename in (select ename from scott.emp order by ename)
会报 “ORA-00907:紧缺右括号”的错误。
一经将地点的嵌套子查询再装进一层,成为第二层查询的内联视图。
select * from scott.emp
where ename in (select * from(select ename from scott.emp order by
ename))
则足以成功举办。

— clob字段插入数据
ORA-01704: string literal too long
DECLARE
  str varchar2(32767);
BEGIN
  str :=
‘{“EM_TaskOID”:”da8ebe4d-cbd3-498b-9892-d9dd073aa82a”,”TemplateID”:”000814c8-0000-0000-0000-0000d01e4a99″,”ContentTemplate”:”<div
style=\”OVERFLOW: hidden; HEIGHT: 232px; WIDTH: 700px; MARGIN: 0px
auto\”><img alt=\”\”
src=\”http://invitation.cantonfair.org.cnsendmailst/top.jpg\\”
height=\”232\” width=\”700\” /></div><table
cellpadding=\”0\” cellspacing=\”0\” align=\”center\”
border=\”0\” width=\”700\”><tbody><tr><td
background=\”http://invitation.cantonfair.org.cnsendmailst/left.jpg\\”
valign=\”top\” width=\”100\”>’|| ‘&’ ||’nbsp;</td><td
background=\”http://invitation.cantonfair.org.cnsendmailst/middle.jpg\\”
height=\”600\” valign=\”top\”><p style=\”TEXT-ALIGN:
center\”><span style=\”font-family:仿宋_GB2312;FONT-SIZE:
18pt\”><span style=\”font-size:16px;\”><span
style=\”font-family:Arial;mso-fareast-font-family:
仿宋_GB2312\”><br
/></span></span></span><span
class=\”STYLE1\”>欢迎参预第115届中国进出口货物交易会</span></p><p
style=\”TEXT-ALIGN:
center\”>                          {{content6}}</p><p
class=\”STYLE1\”>爱抚的{{content2}}: <br
/>  您的情侣{{content3}},来自{{content4}}向你推荐中国先是展—
中国进出口商品交易会。 <br
/>  中国进出口货物交易会,又称广交会,创办于1957年春,每年春秋两季在迈阿密设立,是华夏当下正史最长、层次最高、规模最大、商品类别最全、到会客商最多且国别地区分布最广、成交效果最好、信誉最佳的综合性国际贸易盛会。 
<br
/>  第{{content5}}届广交会将于2014年十月15日—五月5日在新德里华夏进出口货物交易会展馆分三期设置。本届广交会总展览面积达116万平方米,展位数5.9万个。<br
/>  广交会的参展公司都是中国非凡品牌商家,信誉卓越,同时广交会的产品连串齐全,且质地好价格优,仍可以依据客人需求开展个性化设计和制作,相当值得你前来参观采购。<br
/>  欢迎您前来到场第{{content5}}届广交会!关于广交会境外购买商在线申请注册、报到办证、翻译服务、旅舍订房及交通信息等事宜,请登陆广交会官方网站<a
href=\”http://www.cantonfair.org.cn/\\”>www.cantonfair.org.cn</a>或咨询广交会客户互换主旨,电邮:info@cantonfair.org.cn,电话:4000888999(中国境内),86-20-28888999(中国境外)。<br
/>  出口展区:第一期2014年六月15-19日:电子及家电;照明;车辆及配件;机械;五金工具;建材;化工产品。第二期2014年5月23-27日:日用消费品;礼品;家居装饰。第三期2014年七月1日-
7月5日:纺织衣裳;鞋;办公、箱包及休闲用品;医药及医疗保健;食品。<br
/>  进口展区:第一期2014年一月15-19日:电子及家电;建材及金属;机械设备;工业原料等。第三期2014年11月1日-12月5日:食品及农产品;医疗保健及美容护理产品;礼品及装饰等。<br
/>  展区安排的连带信息截止2014年六月26日,最新音讯请以广交会官方网站<a
href=\”http://www.cantonfair.org.cn\\”>www.cantonfair.org.cn</a>
公布为准。<br
/>  请您参加办证时带上此邀请邮件和境外个人有效证件,您将分享到免费办理首张入馆证件的优厚。</p><span><span
style=\”font-size:16px;\”><span style=\”font-family:Times New
Roman;\”></span></span></span><p
class=\”MsoNormal\” style=\”TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt;
TEXT-INDENT: 21pt; mso-margin-top-alt: auto; mso-margin-bottom-alt:
auto; mso-pagination: widow-orphan; mso-char-indent-count: 2.0\”
align=\”left\”></p></td><td
background=\”http://invitation.cantonfair.org.cnsendmailst/right.jpg\\”
valign=\”top\” width=\”103\”>’|| ‘&’
||’nbsp;</td></tr></tbody></table><div
class=\”cc\” style=\”WIDTH: 702px; MARGIN: 0px auto; heihgt:
128px\”><div style=\”HEIGHT: 128px; WIDTH: 111px; FLOAT:
left\”><img alt=\”\”
src=\”http://invitation.cantonfair.org.cnsendmailst/0830-3\_02.jpg\\”
height=\”128\” width=\”111\” /></div><div class=\”fl\”
style=\”HEIGHT: 128px; WIDTH: 590px; FLOAT: left\”><div
style=\”HEIGHT: 19px\”><img alt=\”\”
src=\”http://invitation.cantonfair.org.cnsendmailst/0830-3\_03cn.jpg\\”
height=\”19\” width=\”589\” /></div><div class=\”cc\”
style=\”HEIGHT: 90px\”><div style=\”HEIGHT: 90px; WIDTH: 275px;
BACKGROUND: url([basecodebar]); FLOAT:
left\”>{{content1}}</div><div style=\”HEIGHT: 90px; WIDTH:
314px; FLOAT: left\”><img alt=\”\”
src=\”http://invitation.cantonfair.org.cnsendmailst/0830-3\_05cn.jpg\\”
height=\”90\” width=\”314\”
/></div></div><div><img alt=\”\”
src=\”http://invitation.cantonfair.org.cnsendmailst/0830-3\_06cn.jpg\\”
height=\”19\” width=\”589\”
/></div></div></div>”,”SubjectTemplate”:”老采购商推荐新购入商
“,”ifSubmit”:false,”mailSeq”:null,”mailListNo”:”185539″,”mpid”:null,”mptempid”:null,”mpaccid”:null,”html”:null,”fileName”:”20140725173024.txt”,”mpTitle”:null,”ReplyEmail”:”cmail@cantonfair.org.cn”,”ReplyName”:”cmail@cantonfair.org.cn”,”Language”:”ZH”}’;
  UPDATE EM_EmaiTask SET SYS_LAST_UPD=SYSDATE, submitResult=str WHERE
EM_EmaiTaskOID=’da8ebe4d-cbd3-498b-9892-d9dd073aa82a’;
END;
浅析:把长度抢先4000的字符串赋值给变量,然后在update或insert

—  在oracle中为变量nbsp;问题化解
update table1 set col1 = ‘text’|| ‘&’ || ‘test1’
分析:oracle中把&当做了自定义变量,也足以应用ASCII码chr(38)

— 单引号的处理
Select ‘test ”’ from dual;
Select ‘It’ || chr(39) || ‘fine’ from dual;
剖析 ” 等同于一个单引号,此外chr(39)是单引号的ASCII码

— 字符串类型的字段,里面的值假诺都是数字,使用order by排序时,需要
to_number(column1)
你这列是字符串,不是int,就按ASCⅡ码排序,不转换为数字,那么看似的效劳为

column1

9
80
700
10000

— decode(字段或字段的演算,值1,值2,值3)
其一函数运行的结果是,当字段或字段的演算的值等于值1时,该函数重临值2,否则重返值3;当然值1,值2,值3也可以是表达式。

— 重建索引
alter index index_name rebuild tablespace tablespace_name
“tablespace_name”到场表空间名,会将点名的目录移动到指定的表空间当中。
注:
analyze
操作只是总括音讯,并将总结新闻寄存起来供日后分析SQL使用,不开展重建之类的现实实施性操作,因而要重建索引的话
抑或要用 alter index index_name rebuild
或许造成的失实:
没辙删除数据,提醒“ORA-01502:索引‘table.index’或所这类索引的分区处于不可用状态”


— 加号在oracle中的使用

  1. LEFT OUTER JOIN:左外关联
    SELECT e.last_name, e.department_id, d.department_name
    FROM employees e
    LEFT OUTER JOIN departments d
    ON (e.department_id = d.department_id);

等价于
SELECT e.last_name, e.department_id, d.department_name
FROM employees e, departments d
WHERE e.department_id=d.department_id(+);

  1. RIGHT OUTER JOIN:右外关联

SELECT e.last_name, e.department_id, d.department_name
FROM employees e
RIGHT OUTER JOIN departments d
qg111钱柜娱乐官网,ON (e.department_id = d.department_id);

等价于

SELECT e.last_name, e.department_id, d.department_name
FROM employees e, departments d
WHERE e.department_id(+)=d.department_id;


like的速度

可以运用instr来替换,来增强速度


instr用法
instr( string1, string2, start_position,nth_appearance ) [1] 
[2]
string1
源字符串,要在此字符串中寻觅。
string2
要在string1中摸索的字符串 。
start_position
意味着string1 的哪个岗位初步查找。此参数可选,如若省略默认为1.
字符串索引从1上马。假若此参数为正,从左到右起先物色,如若此参数为负,从右到左检索,再次回到要寻找的字符串在源字符串中的最先索引。
nth_appearance
表示要寻找第四次面世的string2. 此参数可选,假设简单,默认为
1.假若为负数系统会报错。
注意:
  地点索引号从1初始。
  如若String2在String1中没有找到,instr函数再次回到0。
  示例:
  SELECT instr(‘syranmo’,’s’) FROM dual; — 返回 1
  SELECT instr(‘syranmo’,’ra’) FROM dual; — 返回 3
  SELECT instr(‘syran mo’,’a’,1,2) FROM dual; — 返回 0


EXISTS 与 in
1、exists的用法
EXISTS里的子查询结果集非空,EXISTS()子句的值就是true;
EXISTS里的子查询结果集为空,EXISTS()子句的值就是false。
e.g. select * from T1 where exists(select 1 from T2 where T1.a=T2.a)
2、性能分析
数据量大的时候用exists,数据量少的时候用in
由此使用EXISTS,Oracle会首先检查主查询,然后运行子查询直到它找到第一个匹配项,那就省去了光阴。Oracle在实践IN子查询时,首先执行子查询,并将取得的结果列表存放在一个加了目录的临时表中。在执行子查询此前,系统先将主查询挂起,待子查询执行完毕,存放在临时表中之后再执行主查询。这也就是使用EXISTS比使用IN平时查询速度快的原由

相关文章