`
greemranqq
  • 浏览: 974635 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

在PL/SQL中执行SQL语句.(三)

阅读更多

 oracle 数据库中,语句一般分为这几种:

 

DML(data manipulation language) : 数据库操纵语句,有

select  、insert、update、delete 能对数据进行操作的语言,严格说来select  不算在其中

 

DDL(Data Definition Language) :数据库定义语言,有

create、drop、alter、truncate  等,通常是数据库管理系统的一部分,用于定义数据库的所有特性和属性

 

DCL Data Control Language):数据控制语言,有

Grant、Revoke、Commit、Rollback,其中Commit、Rollback 严格可以归纳为TCLTransaction Control Language(事务控制语言)。

 

1.表复制,复制dept 表,后面使用

 create table  my_dept as select * from dept;

注意:-- 表复制,不会复制约束条件

 

2.动态插入

 

 begin
       insert into  my_dept  values('&no','&name','&location') ;
       commit;
end;   

                      

 

注意:同理可以进行其他操作

 

3.上下文区域(context area):游标(cursor)

    SQL%ROWCOUNT是游标属性,表示刚刚执行的sql语句影响的记录条数.

 

declare
  v_rows number := 0;
begin
  delete from my_dept
  where deptno > 40;
  v_rows := SQL%ROWCOUNT;
  commit;
  dbms_output.put_line
     (v_rows||' deleted');
end;

 

4.创建临时表 temp_ran

   if 存在,清空数据trucate 或者drop

   if 不存在,创建

declare
    v_count number(2) :=0;
begin
    select count(*) into v_count
    from user_tables
    where table_name = 'TEMP_RAN';
    if v_count = 1 then
        execute immediate
            'drop table temp_ran';
    end if;
    execute immediate
        'create table temp_ran as select * from dept';
end;
-- 其他逻辑,类似

   注意: user_table 是用户下的表,表名默认是大写的,immediate是立即的执行,为了提高效率,具体用

   法去官网看 。

 

5.分支语句

declare
    v_rate number(3,2);
    v_job emp.job%type;
    v_sal emp.sal%type;
    v_empno emp.empno%type :=&no;
begin
    select job,sal into v_job,v_sal 
    from emp where empno = v_empno;
    if v_job = 'ANALYST' then
        v_rate := 1.2;
    elsif v_job = 'MANAGER' then
        v_rate  := 1.1;
    elsif v_job = 'SALESMAN' then
        v_rate := 1.05;
    else
        v_rate := 1;
    end if;
    update emp_ran set sal = sal*v_rate
    where empno = v_empno;
    commit;
    dbms_output.put_line(v_job || 'old :'||v_sal||', new :'||v_sal*v_rate);
end;

   注意:这里是elsif 不是elseif, 'ANALYST' emp表中复制的数据  

   也可以用case 方式

 

  

declare
  v_rate number(3,2);
  v_job emp.job%type;
  v_sal emp.sal%type;
  v_empno emp.empno%type := &no;
begin
  SELECT job,sal into v_job,v_sal
  from emp_ran where empno = v_empno;
  case v_job
    when  'ANALYST' then v_rate :=1.2;
    when  'MANAGER' then v_rate :=1.1;
    when  'SALESMAN' then v_rate :=1.05;
    else v_rate :=1;
  end case;
  update emp_ran set sal = sal * v_rate
  where empno = v_empno;
  commit;
  dbms_output.put_line(v_job ||' old:'||v_sal||','||'new:'||v_sal * v_rate);
end;

 

注意:这里查找不到会出现:no data found 异常,这是系统自带异常,可以自己定义。

 

6.循环语句

declare
  v_i number :=10;
BEGIN
  loop 
    -- 插入数据
    insert into emp_ran(empno) values(v_i);
    -- 当 v_i =20 ,退出,自增1
    exit when v_i = 20;
    v_i := v_i+1;
   end loop;
   COMMIT ;
END ;

 

 另外的方式,和JAVA for 循环差不多

declare
  v_i number :=10;
begin
  for v_i in 100..110 
  loop
    insert into emp_ran(empno) values(v_i);
    -- commit;
  end loop;
end;

 while 方式:

declare
  v_i number := 1000;
begin
  while v_i < 1010 loop
    insert into emp_ran(empno)
    values(v_i);
    v_i := v_i + 1;
  end loop;
  commit;
end;

 

这里介绍的就是常用的 分支 和循环语句,和JAVA 类似

分享到:
评论

相关推荐

    PL/SQL Developer V14.0.2.1969 x86/x64 最新官方多语言注册版(含中文)2020.08.22 官方更新

    11. **性能分析**:通过PL/SQL Developer,用户可以分析SQL语句的执行计划,优化查询性能。 12. **代码提示和自动完成**:提升开发效率,减少语法错误。 13. **版本控制集成**:与常见的版本控制系统如Git、SVN等...

    pl/sql最新中文手册

    8. **索引和性能优化**:手册可能也会涉及如何利用索引来提高PL/SQL程序的执行效率,以及如何分析和优化SQL语句。 9. **并发和锁定**:在多用户环境下,理解并发控制和锁定机制是必要的。手册可能会讨论如何处理...

    一个对数据库的操作工具PL/SQLpl/sqL工具

    8. **动态SQL**:通过EXECUTE IMMEDIATE语句,可以执行在运行时构建的SQL语句,增强了程序的动态性。 9. **数据库链接**:允许用户从一个数据库访问另一个数据库的数据,实现分布式数据库操作。 10. **性能优化**...

    oracle10g_pl/sql

    - **存储过程**:一组PL/SQL语句,可重复调用,提高代码复用性。 - **函数**:类似于过程,但返回一个值,可用于计算或验证。 - **触发器**:在特定数据库事件(如INSERT、UPDATE、DELETE)发生时自动执行的PL/...

    基本SQL语句及PL/SQL语句

    文件"sql语句.ppt"和"PLSQL.ppt"可能包含了这些概念的详细解释和实例,帮助读者深入理解和掌握SQL和PL/SQL的使用。学习这些语句和语言对于任何需要与数据库交互的开发工作都是至关重要的,无论是在Web开发、数据分析...

    Oracle PL/SQL实战(待续)

    在这个"Oracle PL/SQL实战(待续)"的主题中,我们将深入探讨这个语言的核心概念和实战技巧。 在Oracle数据库中,PL/SQL提供了丰富的控制结构,如循环、条件判断,以及异常处理机制,使得开发者能够编写复杂的业务...

    pl/sql developer11.0

    7. **性能优化**:提供性能分析工具,如执行计划分析、SQL Tuning Advisor等,帮助优化SQL语句,提高数据库运行效率。 8. **版本控制集成**:与其他版本控制系统(如Git、SVN)无缝集成,便于版本管理和代码协同。 ...

    Oracle数据库实用教程第三章 PL/SQL程序设计.pptx

    运行 PL/SQL 程序需要通过 Oracle 中的一个引擎来进行,引擎执行 PL/SQL 中的过程性语句,然后将 SQL 语句发送给数据库服务器来执行,再将结果返回给执行端。 PL/SQL 块结构由三个部分组成:声明部分、执行部分、...

    pl/sql developer v7.1.5.1400 注册文件(Keygen)

    4. **数据操作**:提供数据浏览和编辑功能,可以直接在界面上查询、插入、更新和删除数据,而无需编写SQL语句。 5. **项目管理**:支持将数据库相关的工作组织成项目,方便团队协作和代码版本控制。 6. **报表和...

    PL/SQL中文帮助手册

    在PL/SQL中,主要包含以下核心概念: 1. **块结构**:PL/SQL程序的基本单元是块,包括声明部分、执行部分和异常处理部分。声明部分用于定义变量和常量,执行部分包含语句和控制结构,异常处理部分处理程序运行时...

    PL/SQL开发文档1

    2. SQL*Plus是Oracle提供的一个命令行工具,允许用户执行SQL语句和PL/SQL代码块,并获取查询结果。 3. PL/SQL程序单元包括过程(Procedures)、函数(Functions)、包(Packages)、触发器(Triggers)等。文档中...

    PL/SQL中文包

    PL/SQL是Oracle数据库系统中的一个编程语言,用于在数据库中执行复杂的业务逻辑和数据处理。这个"PL/SQL中文包"显然是为了帮助中国用户更好地理解和使用PL/SQL而设计的,它可能包含了中文版的文档、教程、错误消息...

    PL/SQL下载

    5. **动态SQL**:允许在运行时构造和执行SQL语句,增强了灵活性。 **PL/SQL Developer** PL/SQL Developer是一款专为Oracle数据库开发设计的集成开发环境(IDE),它的主要功能包括: 1. **源代码编辑器**:提供...

    oracle pl/sql fundamentals

    8. **动态SQL**:了解如何在PL/SQL中构建和执行动态SQL语句,以适应不断变化的查询需求。 9. **事务管理**:学习如何控制事务的开始、提交和回滚,以及理解并发控制的重要性。 10. **性能优化**:初步接触PL/SQL的...

    PL/SQL入门到精通书的源代码

    5. **过程与函数**:过程是一组PL/SQL语句的集合,用于执行特定任务。函数与过程类似,但返回一个值。它们可以提高代码的复用性和模块化。 6. **异常处理**:PL/SQL提供了一个强大的异常处理机制,允许你定义和捕获...

    pl/sql12.0.2官方安装包完美汉化(含注册机)

    在标题和描述中提到的"pl/sql12.0.2官方安装包完美汉化(含注册机)",意味着这是一个针对PL/SQL Developer 12.0.2版本的中文版安装包,而且包含了注册机,以便用户能够激活软件。 PL/SQL是Oracle数据库系统中的...

    oracle 9i pl/sql程序设计笔记

    **标题与描述**:本文档围绕“Oracle 9i PL/SQL程序设计笔记”这一核心主题,深入探讨了PL/SQL语言的基础知识及其在Oracle 9i数据库环境中的应用。 **关键词**:Oracle 9i、PL/SQL #### PL/SQL程序结构详解 **2.1...

    PL.SQL.Developer.v7.1.2.1363-BEAN.rar

    可以执行SQL语句,查看结果,甚至进行数据的导入和导出。 5. **项目管理**:支持创建和管理项目,将相关的表、视图和代码组织在一起,便于团队协作和代码版本控制。 6. **报表和图表**:可以生成关于数据库性能、...

    ORACLE PL/SQL从入门到精通

    过程是PL/SQL中一种用来封装逻辑的单元,它包含了一系列的SQL语句和PL/SQL代码,可以执行特定的任务。过程与匿名程序块的区别在于它具有名称和参数,能够被重复调用。创建过程的语法中涉及到参数模式,包括IN、OUT、...

    PL/SQL Developer 9.0.4.1644 绿色中文版_带注册机

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库...此外,PL/SQL Developer 还提供了其他几个能在每天的PL/SQL 开发中提供帮助的工具。 注册有图示,PL/SQL Developer 9.X注册机杀软报毒,请加入白名单。

Global site tag (gtag.js) - Google Analytics