网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

sql知识点总结

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
tput.put_line(myCur%rowCount||' '||vare.ename||' end loop; if myCur%isopen then Close myCur; dbms_output.put_line('Closing...'); end if; End; / 例子3:使用For循环遍历游标, /* conn scott/tiger */ Declare Cursor myCur is select * from emp; Begin for varA in myCur loop dbms_output.put_line(myCur%rowCount||' '||varA.ename||' end loop; '||varA.sal); '||varA.empno||' '||vare.sal); '||vare.empno||' '||vna||' '||vsal);

  End; / 7,怎样更新和删除显示游标中的记录? ①UPDATE或DELETE语句中的WHERE CURRENT OF子串专门处理要执行UPDATE或DELETE操 作的表中取出的最近的数据。 要使用这个方法,在声明游标时必须使用FOR UPDATE子串,当对话使用FOR UPDATE子串打 开一个游标时, 所有返回集中的数据行都将处于行级 (ROW-LEVEL)独占式锁定, 其他对象只能查询这些数据 行, 不能进行UPDATE、DELETE或SELECT...FOR UPDATE操作。 在多表查询中,使用OF子句来锁定特定的表,如果忽略了OF子句,那么所有表中选择的数据 行都将被锁定。 如果这些数据行已经被其他会话锁定,那么正常情况下ORACLE将等待,直到数据行解锁。 ②使用更新或删除: ⑴声明更新或删除显示游标: Cursor 游标名 IS Cursor 游标名 IS Update Delete 表名 From SELECT 语句 SELECT 语句 更新语句 Where For Update [ Of For Delete [ Of Where Current Current Of Of 更新列列名]; 更新列列名]; 游标名;

  ⑵使用显示游标当前记录来更新或删除: SET 表名 游标名;

  例子1:更新显示游标记录 /*conn scott/tiger*/ Declare Cursor myCur is select job from emp for update; vjob empa.job%type; rsal empa.sal%type; Begin open myCur; loop fetch myCur into vjob; exit when myCur%notFound; case when when else rsal := 0.5; end case; update emp set sal = sal + rsal where current of myCur; end loop; End; / (vjob) rsal := 0.1; rsal := 0.3; 'CLERK' then rsal := 0.2; when 'ANALYST' then 'MANAGER' then

  例子2:删除显示游标记录 /*conn scott/tiger Crate table */ Declare Cursor MyCursor vSal Begin Loop Fetch Exit If End End End;/ 8,什么是带参数的显示游标? ①与过程和函数相似,可以将参数传递给游标并在查询中使用。 参数只定义数据类型,没有大小(所有Oracle中的形参只定义数据类型,不指定大小)。 与过程不同的是,游标只能接受传递的值,而不能返回值。 可以给参数设定一个缺省值,当没有参数值传递给游标时,就使用缺省值。 游标中定义的参数只是一个占位符,在别处引用该参数不一定可靠。 ②使用带参数的显示游标 ⑴声明带参数的显示游标: CURSOR 游标名 [(parameter[,parameter],...)] 数据类型 DEFAULT 默认值 IS Select语句;; MyCursor When InTo vSal; MyCursor%NotFound; Where Cursor Of MyCursor; Select JOB From empa For Update; emp.Sal%TYPE; empa Select * from scott.emp;

  vSal < 800 Then From empa If; Loop;

  Delete

  参数形式:1,参数名 2,参数名

  数据类型

  例子: /*conn scott/tiger Crate table */ Declare Cursor MyCursor(pSal empa Where varA Begin Loop Fetch Exit MyCursor When InTo varA; '||varA.empno||' MyCursor%NotFound; '||varA.sal); SAL > pSal ; Number Default 800) Select JOB From empa Select * from scott.emp;

  MyCursor%ROWTYPE;

  DBMS_OUTPUT.PUT_LINE(MyCursor%RowCount||' '||varA.ename||' End Loop;

  End;/ 思考: 怎样将游标作为参数传递? 本文来自CSDN博客,转载请标明出处:

  • 上一篇资讯: 结构化查询语言(SQL)
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师