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
  • 相关阅读:
    linux网络编程 inet_aton(); inet_aton; inet_addr;
    linux网络编程 ntohs, ntohl, htons,htonl inet_aton等详解
    linux C++ scandir 的使用
    linux 多线程编程-读写者问题
    为什么修改头文件make不重新编译
    syslog(),closelog()与openlog()--日志操作函数
    VC:CString用法整理(转载)
    VC6.0实用小技巧
    HTml js 生成图片
    C++中两个类相互包含引用问题
  • 原文地址:https://www.cnblogs.com/piper/p/6957655.html
Copyright © 2011-2022 走看看