zoukankan      html  css  js  c++  java
  • orcle自定义类型type/create or replace type

    一、type / create or repalce type 区别联系

    相同:

    可用关键字create type 或者直接用type定义自定义类型,

    区别:

    create type 变量 as table of 类型

    --

    create type 变量 as object(

    字段1 类型1,

    字段2 类型2

    );

    --------------------------

    type 变量 is table of 类型

    --

    type 变量 is record(

    字段1 类型1,

    字段2 类型2

    );

    区别是 用 create 后面用 as , 若直接用 type 后面用 is

    create 是创 object , 而 type 是创 record .

    另 type用在语句块中,而create 是的独立的.

     

    一般定义object的语法:

     

    create type 自定义表类型A as table of 自定义Object类型A

    create type 自定义Object类型A as object(

    字段1 类型1,

    字段2 类型2

    );

     

    type 自定义表类型B is table of 类型

    type 自定义Object类型B is record(

    字段1 类型1,

    字段2 类型2

    );

    自定义类型一般分为两中,object类型和table类型.object类似于一个recored,可以表示一个表的一行数据,

     

    object的字段就相当与表的字段.

     

    自定义的table类型需要用的已经定义好的object类型.

    数组怎么定义呢:

    type  typename is table of typedefine index by binary_integer;//若去掉index by binary_integer,则需要每次自动扩展了

     
    CREATE OR REPLACE TYPE typename AS VARRAY(100) OF typedefine;

    二:type record用法概述

    type 自定义Object类型B is record(

    字段1 类型1,

    字段2 类型2

    );

    2.1:什么是记录(Record)?
    由单行多列的标量构成的复合结构。可以看做是一种用户自定义数据类型。组成类似于多维数组。
    将一个或多个标量封装成一个对象进行操作。是一种临时复合对象类型。

    记录可以直接赋值。RECORD1 :=RECORD2;
    记录不可以整体比较.
    记录不可以整体判断为空。

    2.2:%ROWTYPE和记录(Record)?
    请区别%ROWTYPE和记录(Record)类型。%ROWTYPE可以说是Record的升级简化版。
    区别在与前者结构为表结构,后者为自定义结构。二者在使用上没有很大区别。前者方便,后者灵活。在实际中根据情况来具体决定使用。
    Record + PL/SQL表可以进行数据的多行多列存储。

     

    三:工作实例

    1、

    CREATE OR REPLACE TYPE "TYPE_COLUMN"
     IS OBJECT
    (
      STR_COLUMN       VARCHAR2(30)
    )

    2、

    CREATE OR REPLACE TYPE "TYPE_TABLE_SPLIT_COLUMNS"
     AS table of TYPE_COLUMN
    /
    3、

    CREATE OR REPLACE TYPE "TYPE_TB_RPT_SECU_DAILY_EXT"
     AS table of TYPE_RPT_SECU_DAILY_EXT
    /



    /

    你若盛开清风自来 --@copyright by piper_he
  • 相关阅读:
    函数依赖(转)
    C++对象的深拷贝和浅拷贝
    C++临时匿名对象
    C++操作符重载
    C数组和指针
    动态开发入门之Servlet
    数据库的CURD操作 以及经典的sql语句
    如何删除07版word页眉页脚的横线
    数据库的连接查询
    经典面试题 详细解析Java中抽象类和接口的区别
  • 原文地址:https://www.cnblogs.com/piper/p/6957655.html
Copyright © 2011-2022 走看看