PL/SQL基本知识

原创 2006年06月14日 00:03:00

PL/SQL(过程化SQL语言)与Pascal的语法很相似。
一个完整的PL/SQL程序结构如下:
       declare
          定义语句块
       begin
          执行语句块
       exception
          异常处理
       end
变量,常量定义
变量声明
变量名 类型标识 [not null]:=值
括号内的 not null为可选,若选用,表明该变量不能为空。

常量声明
常量名 constant 类型标识 [not null]:=值
NULL的概念:
NULL 未定义,不可操作,什么都不是
NULL != 0    NULL!='空格'   
和NULL的任何运算都返回NULL
ORACLE里未定义的变量值都为NULL
Oracle 的基本数据类型:

复合数据类型:
1.使用%type定义变量:
%type用来定义与数据表中字段数据类型一致的数据类型。它会随着表中字段类型的改变而改变。
定义方法:
变量名 表名.字段名%type;
2.定义记录型数据类型:(相当于自定义类型,C里面的结构体)
定义方法:
type newtype_name is record(myrecordnumber int,mycurrentdate date);
3.使用%rowtype定义变量 
使用%rowtype可以使变量获得整修记录的数据类型
定义方法:
变量名 表名%rowtype;
4.定义一维表类型变量(一维数组)
定义方法:
type tabletype_name is table of 类型 index by binary_integer;
tabletype_name是新定义的类型名
类型为前面的类型定义
以 tabletype_name(1) 的形式引用。
5.定义多维表类型变量
相当于多维数组
定义方法:
type tabletype_name is table of tablename%rowtype index by binary_integer;

关于Oracle PL/SQL中数组的问题

oracle有三种复合类型:TABLE,RECORD和VARRAY。TABLE允许用户定义用于数组处理的PL/SQL表。Table复合类型向开发者提供了可用于数组处理的机制。

    要初始化数组,必须首先定义数组名或type,在本例中是emp_name。这个table列被定义为最大有20位的varchar2。可以将列定义为任意合法的PL/SQL数据类型,但主键或INDEX必须是BINARY_INTEGER类型的。

    下面是偶今天刚写的一个简单例子:

declare
    i binary_integer;
    type emp_name is table of varchar2(20)
    index by binary_integer;
    old_emp_name emp_name;   
begin
    old_emp_name(1):='allen';
    old_emp_name(2):='joe';
    old_emp_name(3):='jay';
    old_emp_name(4):='hellen';
    old_emp_name(5):='augustine';
    for i in 1..5 loop
        insert into tname(tname)values(old_emp_name(i));
        commit;
    end loop;
end;

这个只是一维数组。多维的可以用record+table实现。

 

相关文章推荐

pl_sql基本知识

  • 2013年10月12日 14:48
  • 70KB
  • 下载

oracle基础知识2----pl/sql基础(基本语法、光标、例外、应用)

测试数据来源:http://blog.csdn.net/ochangwen/article/details/51297893     PL/SQL(Procedure Language/SQL),是...

Oracle数据库的知识点总结(PL/sql)

1, 登录数据库       sqlplus  “/as sysdba”    最高权限  conn user/pwd     切换用户  创建用户: create  user userName...

pl/sql优化小知识点

1.选择最有效的表名顺序 oracle的解析器按照从右到左的顺序处理from子句中的表名,因此写在from子句最后的表(基础表,drivingtable)将被最先处理。在from子句中包含多个表的情况...

pl/sql基础知识学习笔记(三)

PLSQL 基础知识(三)——存储过程 一. 子程序的组成 子程序是已命名的PL/SQL块,存在数据库中。子程序中包含存储过程和函数,使用存储过程执行操作,使用函数执行操作并返...

PL/SQL基础知识详解

PL/SQLPL/SQL基础知识 什么是PL/SQL? PL/SQL是由Oracle开发,专用于Oracle的一种程序设计语言;PL代表 Procedural Language;SQL代表Struct...
  • a1234H
  • a1234H
  • 2016年10月23日 09:41
  • 88

用PL/SQL Developer创建Oracle触发器以及触发器的一点点知识与出现的问题

本文将介绍如何使用PL/SQL Developer快速的创建一个触发器,应该明确的是鼠标的所有操作都是可以用代码实现的...

PL/SQL基础知识

     Isopen是打开游标 Rowecount记录数 &从用户输入 Reverse表反转由大到小 %rowtype表示参照这张表的一行类型全部。 ...

PL/SQL知识点(二)

(九) 游标变量 案例1、 declare --定义部分 --定义一个游标 sp_emp_cursor type sp_emp_cursor is ref cursor; --再定义一个游标...

PL/SQL基础知识1(复合变量,异常处理)

pl/sql中除了varchar2,char,number,boolean.date等常用简单类型外还有表类型,记录类型 1.表类型(table): 其实表类型就相当于数组,而和数据库中存数据的表...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PL/SQL基本知识
举报原因:
原因补充:

(最多只允许输入30个字)