`

PL/SQL基础

 
阅读更多
1.基本的PL/SQL代码块如下所示:
DECLARE
/* Declarative section - PL/SQL variables, types, cursors,
and local subprograms go here. */
BEGIN
/* Executable section - procedural and SQL statements go here.
This is the main section of the block and the only one
that is required. */
EXCEPTION
/* Exception-handling section - error-handling statements go
here. */
END;

2.循环结构
DECLARE
  v_LoopCounter BINARY_INTEGER := 1;
BEGIN
  LOOP
    INSERT INTO temp_table (num_col) VALUES (v_LoopCounter);
    v_LoopCounter := v_LoopCounter + 1;
    EXIT WHEN v_LoopCounter > 50;
  END LOOP;
END;

3.存储过程
示例
CREATE OR REPLACE PROCEDURE PrintStudents(
  p_Major IN students.major%TYPE) AS
  CURSOR c_Students IS 
    SELECT first_name, last_name
    FROM students
    WHERE major = p_Major;
BEGIN
  FOR v_StudentRec IN c_Students LOOP
    DBMS_OUTPUT.PUT_LINE(v_StudentRec.first_name || ' ' || v_StudentRec.last_name);
  END LOOP;
END;

调用
BEGIN
  PrintStudents('Computer Science');
END;

4.程序包
CREATE OR REPLACE PACKAGE RoomsPkg AS
  PROCEDURE NewRoom(p_Building rooms.building%TYPE,
  p_RoomNum rooms.room_number%TYPE,
  p_NumSeats rooms.number_seats%TYPE,
  p_Description rooms.description%TYPE);
  PROCEDURE DeleteRoom(p_RoomID IN rooms.room_id%TYPE);
END RoomsPkg;

CREATE OR REPLACE PACKAGE BODY RoomsPkg AS
  PROCEDURE NewRoom(p_Building rooms.building%TYPE,
  p_RoomNum rooms.room_number%TYPE,
  p_NumSeats rooms.number_seats%TYPE,
  p_Description rooms.description%TYPE) IS
  BEGIN
    INSERT INTO rooms
(room_id, building, room_number, number_seats, description)
    VALUES (room_sequence.NEXTVAL, p_Building, p_RoomNum, p_NumSeats,
p_Description);
  END NewRoom;

  PROCEDURE DeleteRoom(p_RoomID IN rooms.room_id%TYPE) IS
  BEGIN
    DELETE FROM rooms WHERE room_id = p_RoomID;
  END DeleteRoom;
END RoomsPkg;

5.执行动态SQL
(需要Oracle8i或更高的版本)
CREATE OR REPLACE PROCEDURE DropTable(p_Table IN VARCHAR2) AS
  v_SQLString VARCHAR2(100);
BEGIN
  -- Build the string based on the input parameter.
  v_SQLString := 'DROP TABLE ' || p_Table;
  EXECUTE IMMEDIATE v_SQLString;
END DropTable;
分享到:
评论

相关推荐

    Oracle PL/SQL语言初级教程

    PL/SQL是Oracle对标准数据库语言的扩展,Oracle公司已经将PL/SQL整合到Oracle 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本教程将以循速渐进的方式讲述PL/SQL基础语法,结构和组件、以及...

    pl/sql基础知识ppt

    pl/sql基础知识ppt

    Pl/Sql程序设计

    1、PL/SQL简介 2、PL/SQL基础 3、记录和表 4、在PL/SQL中使用SQL 5、内置SQL函数 6、游标 7、过程和函数 ...

    PL/SQL编程基础知识

    PL/SQL 编程基础知识详解,PL/SQL 包含过程化语句和SQL语句数据操作和查询语句被包含在PL/SQL代码的程序单元中(PL/SQL块),经过逻辑判断、循环等操作完成复杂的功能或者计算.。

    PL/SQL基础 教程

    PL/SQL 教程,非常详细,绝对的好资源!!!!

    PL/SQL 基础教程

    PL/SQL基础教程,学习PL/SQL的入门佳作!

    PL/SQL 用户指南与参考

    第二章 PL/SQL基础 第三章 PL/SQL数据类型 第四章 PL/SQL的控制结构 第五章 PL/SQL集合与记录 第六章 PL/SQL与Oracle间交互 第七章 控制PL/SQL错误 第八章 PL/SQL子程序 第九章 PL/SQL包 第十章 PL/SQL对象...

    pl/sql基础教程

    pl/sql基础教程

    PL/SQL 基础.doc

    PL/SQL 基础,一个不错的 PL/SQL 参考手册。内容预览: ---- 第一章 PL/SQL 简介 ---- 1. Oracle应用编辑方法概览 1) Pro*C/C++/... : C语言和数据库打交道的方法,比OCI更常用; 2) ODBC 3) OCI: C语言和...

    pl/sql基础

    是一款学习pl/sql的非常好的书

    Oracle PL/SQL程序设计(第5版)(下册)第二部分

    《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...

    Oracle_PLSQL语言基础

    PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件、以及如何设计并执行一个PL...

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(二)

     第11章 pl/sql基础  第12章 访问oracle  第13章 编写控制结构  第14章 使用复合数据类型  第15章 使用游标  第16章 异常处理 . 第17章 本地动态sql  第18章 pl/sql过程  第19章 pl/sql函数  第20章 pl/...

    oracle PL/SQL测试题目和详细答案

    pl/sql存储过程,函数,游标,以及存储过程中的基础知识,绝对值得你收藏的经典题目,让你的pl/sql得到最大的锻炼。让你的数据库逻辑更加灵活。

    ORACLE PL/SQL 基础教程及参考

    PL/SQL语言是的SQL语言扩展,具有为程序开发而设计的特性,如数据封装、异常处理、面向对象等特性。 PL/SQL是嵌入到Oracle服务器和开发工具中的,具有很高的执行效率和同Oracle数据库的完美结合。在PL/SQL模块中可以...

    PL/SQL详细基础教程

    十分详细的PL/SQL基础教程。非常适合Oracle开发者入门学习使用。

Global site tag (gtag.js) - Google Analytics