设为首页 收藏本站
查看: 809|回复: 0

[经验分享] oracle常用语法和语句收藏

[复制链接]

尚未签到

发表于 2016-8-12 06:00:38 | 显示全部楼层 |阅读模式
1.case when 示例      
select task_id taskId,
          start_time startTime,
          end_time endTime,
          status status,
          plan_type planType,
          is_manual isManual,
          is_pilotCal isPilotCal,
          scheduling_code schedulingCode
          from log_schedule_plan
          where plan_type = 'RSV_SCHEDULING_PLAN'
          and sysdate > (case when is_manual=0 then (start_time + interval '10' minute) else (start_time + interval '2' minute) end)

2.merge 示例

merge
into WAREH_LOCKED_LST wll using (select
wareh_id,prod_id,locked_type,sum(locked_qty) locked_qty from
TEMP_UR_WAREH_LOCKED_LST where id=#batchId# group by
wareh_id,prod_id,locked_type)uwllt
on (wll.wareh_id = uwllt.wareh_id
and wll.prod_id = uwllt.prod_id
and wll.locked_type = uwllt.locked_type
)
when matched then update
set wll.locked_qty = nvl(wll.locked_qty,0) +
nvl(uwllt.locked_qty,0)
,stk_change_date =systimestamp
when not matched
then
insert
(PROD_ID, WAREH_ID, locked_type, locked_qty,STK_CHANGE_DATE)
values(
uwllt.prod_id,
uwllt.wareh_id,
uwllt.locked_type,
uwllt.locked_qty,
systimestamp
)
ps:由自查询关联查询的记录,必须只有一条,否则会报错.

merge into jimmy_student js using
jimmy_student1 js1
on (js1.id = js.id)
when matched then update
set js.score = js.score + 100 where js.score + 100 <=200
when not matched
then insert values(js1.id,js1.name,js1.score,js1.subject)
更新语句可以加where过滤条件,insert,update可以去掉一个


3.upper(lsp.task_id) = lower(lower(lsp.task_id))来判断task_id字段是否为纯数字
eg:select * from log_schedule_plan lsp where (upper(lsp.task_id) = lower(lower(lsp.task_id)))

4.联合分区(其它分区略) range_hash联合分区
create table JIMMY_STUDENT2
(
  ID      NUMBER,
  NAME    VARCHAR2(20),
  SCORE   NUMBER,
  SUBJECT VARCHAR2(20),
  CDATE   DATE
)PARTITION BY RANGE(SCORE)

SUBPARTITION BY HASH(SUBJECT)SUBPARTITIONS 2
(
PARTITION part_1 VALUES LESS THAN (80)
(
   SUBPARTITION part_1_sub_1,
   SUBPARTITION part_1_sub_2,
   SUBPARTITION part_1_sub_3
),

PARTITION part_2 VALUES LESS THAN (150)
(
   SUBPARTITION part_2_sub_1,
   SUBPARTITION part_2_sub_2
)
);


5.查看分区信息
select ut.partitioned from user_tables ut where table_name ='UR_RESERVED_SOURCE'//查看是否为分区表
SELECT * FROM USER_TAB_PARTITIONS WHERE TABLE_NAME ='JIMMY_STUDENT2'//查看分区表的详细信息

6.查询当前锁表信息
select b.owner,b.object_name,a.session_id,a.locked_mode
from v$locked_object a,dba_objects b
where b.object_id = a.object_id;

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-256318-1-1.html 上篇帖子: oracle 插入游标 相当于主键约束 下篇帖子: oracle 存储过程和函数学习笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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