ORACLE
zq爱生活爱代码
这个作者很懒,什么都没留下…
展开
-
游标以及for 循环
1、声明游标2、打开游标3、读取数据4、关闭游标隐士游标 不要打开也不需要关闭。实际上就是 执行select into的时候讲结果集自动读取到制定的变量中声明一个游标declare sursor 游标名[参数列表]isselect 语句;ORACLE的游标和SQLSERVER有些不一样声明游标 一般和变量在一起声明declare cursor mycursor(varType number)isselect name,value from users where .原创 2020-11-23 10:38:32 · 718 阅读 · 0 评论 -
临时表的两种用法
先创建 行对象,再创建 行对象集合create or replace type pmmgdover_record_aa as object ( vdate VARCHAR2(20), partnum VARCHAR2(20), revision VARCHAR2(20), gongling VARCHAR2(30), lotnum VARCHAR2(20), xial.原创 2020-11-23 10:38:22 · 218 阅读 · 0 评论 -
创建临时表
v_sql_createaa:='create global temporary table temp_pmmgdover_record_aa( vdate VARCHAR2(20), partnum VARCHAR2(20), revision VARCHAR2(6), gongling VARCHAR2(30), lotnum VARCHAR2(20), xialiaomia.原创 2020-11-23 10:38:08 · 144 阅读 · 0 评论 -
赋予DBLINK权限
给DBlink赋 表的查询权限--linkname LNK_SG_PDSDB username LNK_HA_MESDB06grant select on hcpmid.hcp_manpower to LNK_HA_MESDB06;给用户赋权限GRANT SELECT ON AHVIEW_DISPATCHREPORT TO CAMSTAR赋予执行权限grant execute on Get_Short_Part to tpj; -- function..原创 2020-11-23 10:37:53 · 2425 阅读 · 0 评论 -
表分区
alter table PMMLOTINFO add partition P2020 values less than ('20210101') tablespace TBS_FPCSFCDATA pctfree 10 initrans 1 maxtrans 255 storage ( initial 1M next 1M minextents 1 maxextents unlimited pct.原创 2020-11-23 10:38:44 · 155 阅读 · 0 评论 -
存储过程 函数 声明格式
create or replace procedure proname(参数名 [in|out|in out] 参数类型 [:=初始值])is | as局部变量声明beginend;create or replace function(参数名 [in|out|in out] 参数类型 [:=初始值])return 数据类型 is|as局部变量声明beginreturn 函数值;end;...原创 2020-11-22 20:20:16 · 274 阅读 · 0 评论 -
去重以及 exists和in的效率对比
exists 主要是用作 一对一 或者 一对多的 情况下什么是一对一,或者一对多呢比如 现在有两个表 部门表,以及员工表。部门表一般都是唯一的,而员工表 就存在 多个员工对应一个部门的情况。在这种情况下,部门表 对 员工表就是一对多的关系。select * from A where exists(select 1 from B where A.id=B.a) ;当B表数据较大时不适合使用in(),因为它会B表数据全部遍历一次.如:A表有10000条记录,B表有1000000.原创 2020-11-22 20:18:28 · 686 阅读 · 0 评论 -
Oracle 更新数据小技巧 和 格式化SQL
如果要批量导入 EXCCEL数据的话,tools下面的ODBC IMPORTER 可以使用更方便的方法是 执行 select * from XXX for update;然后打开下面的锁,选中plsql界面的第一行数据,然后粘贴EXCEL的数据即可格式化SQL tools 下面的 PLSQL Beatuifier(要先选中程式)...原创 2020-11-22 20:16:00 · 169 阅读 · 0 评论 -
Oracle 存储过程内执行SQL
sqlstr := 'update sfcdata.JSPARAMS set PARAM2 = ''' || Water || ''', JSMONTH = ''' || CalMon || ''', ' || v_MonthField || '= ''' || MonthTotal || ''' where DEFINESA = ''' || PaperType || ''' and param2 =''' || v_param2 || ''...原创 2020-08-06 10:25:39 · 724 阅读 · 0 评论 -
Oracle 触发器
分为 触发事件 触发时间 触发级别事件 DML DDL 等等时间 before after级别 行触发(每一行触发一次),语句触发(事件只触发一次)语句触发器 只能判断事件类别,无法获取其他信息create or replace trigger tri_namebefore|after 触发事件(update,insert,delete) on 表明|视图名PLSQL 程序体if inserting thenelsif updating thenelsif delet...原创 2020-08-06 10:24:17 · 189 阅读 · 0 评论 -
Oralce建表-约束-修改列
增加列alter table name add (columnname type)修改列名alter table name rename column name1 to name2删除列alter table name drop column name将列设置不可用alter table name set unused(name)删除 不可用的列alter table name drop unused columns建表时 默认值columnname col..原创 2020-08-06 10:22:32 · 90 阅读 · 0 评论 -
Oracle 序列
创建序列create sequence snameminvalue 1nomaxvalue --无最大值start with 1increment by 1nocyclecache 20;--设置序列值占据的内存块大小修改序列alter sequence snamemaxvalue 10000;删除序列drop sequence sname;使用序列号insert into tablename (userid,username)values(sname.NEX..原创 2020-08-06 10:18:58 · 89 阅读 · 0 评论 -
Oracle top
select FACTORYNAME from (select distinct FACTORYNAME from AHVIEW_GETWORKCENTERwhere FACTORYNAME is not nullorder by FACTORYNAME) --先排序where rownum=1 order by rownum asc --再按照rownum排序原创 2020-08-06 10:12:51 · 80 阅读 · 0 评论 -
ORACLE JOB interval
job 设定在DBMS——jobs下面执行时间 interval设定trunc(sysdate+1)+12/(24) 每天中午十二点执行内容,带参数 pro_do_plan_hcdtl('ZZ','ZZ','ZZ','ZZ','ZZ','3');或者每隔多久执行异常trunc(sysdate,'mi')+1/48 每隔半小时执行一次,不会累加作业时间不过job设定好之后,还得重新修改 nextdate执行时间。...原创 2020-08-06 10:09:32 · 211 阅读 · 0 评论 -
ORACLE DBLINK
作用数据库A查询数据库B的权限,因此需要在数据库A中建立连接到数据库B的dblink确定用户是否有创建DBLink的权限select * from user_sys_privs where privilege like upper('%DATABASE LINK%');sys登陆,为数据库A用户 orcl 赋予建立DBLINK权限grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to orcl; public ...原创 2020-08-06 09:56:54 · 260 阅读 · 0 评论 -
Oracle 行转列 测试例子
关键点 是 要使用分组函数 和 判断select FACTORYNAME,WORKCENTER,OPERATION,RESOURCEGROUPNAME,RESOURCENAME,OUTPUTQTY, to_char(max(DECODE(Status,'Idle',timepercent,'0.0%'))) as Idle,max(DECODE(Status,'Down',timepercent,'0.0%')) as Down,max(DECODE(Status,'Run',timeperc.原创 2020-05-28 18:22:44 · 117 阅读 · 0 评论 -
Oracle 游标学习笔记 (全)
1、声明游标2、打开游标3、读取数据4、关闭游标隐士游标 不要打开也不需要关闭。实际上就是 执行select into的时候讲结果集自动读取到制定的变量中声明一个游标declare sursor 游标名[参数列表]isselect 语句;ORACLE的游标和SQLSERVER有些不一样声明游标 一般和变量在一起声明declare cursor mycursor(varType number)isselect name,value from users wh...原创 2020-05-28 18:19:12 · 324 阅读 · 0 评论 -
ORACLE 流程函数
if elseif(to_number(to_char(target,'MM'))=2) Then m1:=12; m2:=1; m3:=2; elsif(to_number(to_char(target,'MM'))=1) then m1:=11; m2:=12; m3:=1; else m1:=(to_number(to_char(target,'MM'))-2)||'月'; m2:=(to_number(to_char(.原创 2020-05-25 08:10:21 · 228 阅读 · 0 评论 -
ORACLE 异常与事物回滚
关于commit 和 rollback在存储过程中1、没有显示commit;不退出session的话,是不会提交的,此时如果rollback,则回滚,如果commit则提交, 如果disconn的话,会自动提交;2、有显示commit; 那么会自动提交3、既有commit也有rollback,commit之前的就提交,commit和rollback之间的就回滚.4、没有显示commit和rollback, 如果程序出错,则强制退出程序并回滚.捕捉异常回滚DECLA.原创 2020-05-23 19:37:04 · 1022 阅读 · 0 评论 -
ORACLE 日期函数
timestamp 日期类型 秒 后面还有9位,默认6位,通过ff6,ff7,ff8,ff9,或者ff默认6select to_char(systimestamp, 'yyyymmdd hh24:mi:ssxff6'), to_char(systimestamp, 'yyyymmdd hh24:mi:ss.ff6') from dual; timestamp转成date select cast(to_timestamp('2011-09-14 12:52:42.123456789', '.原创 2020-05-23 19:36:33 · 440 阅读 · 1 评论 -
ORACLE 基本函数
select round(25.135,2) from dual --保留几位小数,并四舍五入25.14select ceil(2.5) from dual; 3select floor(1.5) from dual; 1select trunc(35.51814,2) from dual截取小数位数,没有四舍五入select nvl(null,4) from dual select nvl('',4) from dual 类似于 isnull ,空字符串也一样INSTR(.原创 2020-05-23 19:35:42 · 170 阅读 · 0 评论 -
Oracle 建表-约束-修改列
增加列alter table name add (columnname type)修改列名alter table name rename column name1 to name2删除列alter table name drop column name将列设置不可用alter table name set unused(name)删除 不可用的列alter table name drop unused columns建表时 默认值columnname co.原创 2020-05-23 17:07:21 · 155 阅读 · 0 评论