`
springking
  • 浏览: 131165 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

访问oracle之二,操作数据

阅读更多

在plsql块中不仅可以嵌入select语句,还可以嵌入DML语句。

插入数据
 插入数据同样使用insert语句,只不过在提供数据时可以使用plsql变量,既可以使用values子句,
 也可以使用子查询。
例如:
 /*使用value子句插入数据*/
declare
  v_name emp.ename%type;
  v_sal emp.sal%type;
begin
  v_name := '&name';
  v_sal := &sal;
  insert into emp(ename,sal) values(v_name,v_sal);
  dbms_output.put_line('插入了'||v_name||'工资是'||v_sal);
end;

 /*使用子查插入数据*/
declare
  v_sal emp.sal%type := 4000;
begin
  insert into emp2(ename,sal)
  select ename,sal from emp where sal = v_sal; 
end;

更新数据
 更新数据同样使用update语句,只不过可以使用plsql变量。
例如:
 /*使用表达式更新列值*/
declare
  v_empno emp.empno%type := 6044;
  v_name emp.ename%type;
  v_sal emp.sal%type := 5500.23;
begin
  select ename into v_name from emp where empno=v_empno;
  update emp set ename=v_name,sal=v_sal where empno=v_empno;
  dbms_output.put_line('更新了姓名'||v_name);
  dbms_output.put_line('更新了工资'||v_sal);
end;

/*使用子查询更新数据*/
declare
  v_name emp.ename%type := 'bbb';
  v_sal emp.sal%type := 2000.57;
begin
  update emp set sal=(select sal from emp where ename=v_name)
  where job in(select job from emp where sal=v_sal);
end;

删除数据
 同样使用delete语句来删除数据。
例如:
 /*使用变量删除数据*/
declare
  v_name emp.ename%type:='ddd';
  v_job emp.job%type:='工人';
begin
  delete from emp where ename=v_name and job=v_job;
end;

 /*使用子查询来删除数据*/
declare
  --v_name emp.ename%type:='ddd';
  v_sal emp.sal%type:=2000;
begin
  delete from emp where job in(select job from emp where sal=v_sal);
end;

游标
 当执行select,update,insert,delete时,oracle server会为这些sql语句分配相应的上下文区,
 并且oracle使用上下文区解析并执行相应的sql语句,而游标是指向上下文区的指针。

 游标分为隐式游标和显示游标2种,隐式游标又叫sql游标,专门用于处理select into,insert ,update,
 delete语句。显示游标用于处理多行的select语句。

 隐式游标的属性:
  SQL%ISOPEN,当select into,insert ,update,delete语句执行时,oracle会隐含的打开游标,处理结  束后隐含的关闭,所以对开发人员来说,该属性永远为false;
  
  SQL%FOUND,该属性用于判断sql语句的执行是否有作用行,有作用行代表执行成功,该属性的值  为true,没有作用行代表执行失败,该属性的值为false.
  例如:
declare
  v_sal emp.sal%type:=3000;
begin
  update emp set sal=v_sal where emp.empno=&no;
  if sql%found then
     dbms_output.put_line('有作用行,执行成功');
  else
     dbms_output.put_line('没有作用行,执行失败');
  end if;
end;

  SQL%NOTFOUND,该属性用于判断sql语句的执行是否有作用行,没有作用行代表执行成功,该属  性的值为true,有作用行代表执行失败,该属性的值为false.和SQL%FOUND属性的取值正好相反
  例如:
declare
  v_sal emp.sal%type:=3000;
begin
  update emp set sal=v_sal where emp.empno=&no;
  if sql%notfound then
     dbms_output.put_line('没有作用行');
  else
     dbms_output.put_line('有作用行');
  end if;
end;

  SQL%ROWCOUNT,该属性返回sql语句的作用行总数。
  例如:
declare
  v_sal emp.sal%type:=3000;
begin
  update emp set sal=v_sal where emp.empno=&no;
  dbms_output.put_line('修改了'||sql%rowcount||'行');
end;

 

分享到:
评论

相关推荐

    【数据安全】Oracle 透明数据加密(TDE) 完整操作手册

    Oracle 透明数据加密 (TDE) 能够加密存储在表和表空间中的敏感数据,例如手机号码,身份证号等,对于有权访问数据的数据库用户或应用程序,加密数据将被透明地解密。 TDE 可在存储介质或数据文件被盗时保护存储在...

    操作系统重装后oracle数据库的恢复

    重做操作系统后oracle数据库的恢复 文件夹中文件说明: ora.reg oracle主要注册项的恢复参考文件 oraodbc.reg odbc驱动项的恢复参考文件 oraole1~4.reg ole 驱动项的恢复参考文件 恢复中重要操作说明: 1、恢复前提...

    Oracle数据安全

    问题四:应用系统出现意外的违规数据操作或者对敏感数据的访问, 如何才能事后追查出来是谁在什么时间和地点进行的操作? 问题五:应用系统出现违规的数据访问,如何及时发现入侵行为并 进行安全预警和数据责任追踪...

    Oracle数据库分区表操作方法

    Oracle数据库分区表操作方法Oracle数据库分区表操作方法

    使用OCI访问Oracle数据库。包含基本的数据库连接、访问、更新等操作

    使用OCI访问Oracle数据库。包含基本的数据库连接、访问、更新等操作

    SQLserver2012链接Oracle数据库操作说明.docx

    SQLserver2012链接Oracle数据库操作说明:附带图片及详细操作步骤,SQLserver数据库电脑上需要安装好Oracle数据库进行配置

    Oracle禁用操作系统认证方式登陆及SYS远程登录

    Oracle禁用操作系统认证方式登陆及禁止SYS远程登录。Oracle数据库默认允许操作系统登录,尝试登录获取SYS权限将带来极大安全威胁。另外禁止SYS远程登录能有效保证数据库安全。

    Oracle数据库实验操作

    实验15:操作数据为null的函数 31 实验16:分支的函数 32 实验17:分组统计函数 33 实验18:表的连接查询 36 实验19:sql99规则的表连接操作 40 实验20:子查询 41 DDL和DML语句 45 实验21:建立简单的表,并对表进行...

    Java用JDBC实现对Oracle数据库操作

    NULL 博文链接:https://shihuan830619.iteye.com/blog/805971

    用VC访问Oracle操作大数据类型的高效方法.pdf

    用VC访问Oracle操作大数据类型的高效方法.pdf

    Windows Server服务器下Oracle11g创建ODBC连接HANA数据库

    目前通过Oracle11g连接SAP的HANA数据库Oracle11g的透明网关插件gateways中没有该选项,只能通过ODBC创建dblink连接HANA数据库,文档中包含有如何创建本地数据源ODBC,如何创建并配置相关ora文件,如何创建dblink等...

    Oracle11g从入门到精通2

     Oracle数据库系统是数据库领域最优秀的数据库之一,《Oracle11g从入门到精通》以Oracle最新版本Oracle 11g为蓝本,系统地讲述了Oracle数据库的概念、管理和应用开发等内容。  全书结构合理、内容翔实、示例丰富...

    Oracle数据库学习指南

    38.优化调整Oracle 8i数据库(从操作系统) 39.在Internet上运作公司是一项艰苦的任务--关键任务 40.在oracle中限制返回结果集的大小 41.在远端如何建立standby数据库 42.怎样分析你的SQL语句的效率 43....

    oracle成绩管理系统

    1. 实现对oracle中表的数据访问,并可对其进行操作。整个系统有三种用户,“管理员”,“教师”,“学生”。 2. 管理员可对整个系统的信息进行修改,添加,删除操作, 但不能对自己的信息进行删除操作 3. ...

    Oracle数据库备份与恢复.pdf

    此外,Oracle数据库提供了多层次的安全措施,包括用户认证、访问控制、数据加密等,以保护数据免受未经授权的访问和攻击。同时,它支持多种操作系统和硬件平台,如Windows、Linux、UNIX等,这使得Oracle数据库能够...

    Oracle Olap开发备忘录

    4、Oracle Olap API虽与JOlap不兼容,但是两者的概念非常类似,他们与其他API最大的不同之 <br>处是非常强调元数据与数据的区别,这一点从两者的文档中可以直观的看到:直接的对象体系及操作是 <br>没有...

    ORACLE数据库复制

    这种数据的特点是:只读不写,数据量相当大,一旦查询大结果集的数据时,对数据库的IO,内存缓存占用相当大,会严重影响同一个数据库的其他会话的操作,表现为整个数据库反应迟缓,业务功能不可用。采用复制技术后,...

    Oracle10g DBA经常使用的动态性能视图和数据字典

    一、DBA最常用的数据字典 dba_data_files:通常用来查询关于数据库文件的信息 dba_db_links:包括...v$waitstat:出现一个以上会话访问数据库的数据时的详细情况。当有一个以上的会话访问同一信息时,可出现等待情况。

    Oracle数据库SQL基本应用与介绍

    Oracle数据库内部的数据操作可以通过sql语句执行处理,sql与C、Basic等语言不通,数据的访问方法和操作顺序不用正确指定,是要告诉数据库引擎要做什么就可以了。Oracle不仅可以通过基本的sql进行简单的数据操作,还...

Global site tag (gtag.js) - Google Analytics