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
  • 相关阅读:
    XAF 有条件的对象访问权限
    XAF 顯示 UnInplace Report(設置自定義條件顯示報表,不是根據選擇ListView記錄條件顯示報表)
    XAF 如何自定义PivotGrid单元格显示文本?
    XAF 如何布局详细视图上的按钮
    XAF How to set size of a popup detail view
    XAF Delta Replication Module for Devexpress eXpressApp Framework
    XAF 帮助文档翻译 EasyTest Basics(基础)
    XAF 用户双击ListView记录时禁止显示DetailView
    XAF How to enable LayoutView mode in the GridControl in List Views
    XAF 如何实现ListView单元格批量更改?
  • 原文地址:https://www.cnblogs.com/piper/p/6957655.html
Copyright © 2011-2022 走看看