zoukankan      html  css  js  c++  java
  • Oracle简单脚本演示样例

     Oracle简单脚本演示样例

    1.添加表

    --改动日期:2014.09.21

    --改动人:易小群

    --改动内容:新增採购支付情况表

    DECLARE

      VC_STR           VARCHAR2(5000);

      VN_COUNT         NUMBER;

    BEGIN

      --查看现有系统是否有BT_PRODUCT_MODEL

      SELECTCOUNT(*)

        INTO VN_COUNT

        FROM USER_TABLES

       WHERE TABLE_NAME ='BT_BUY_PAY';

      --假设没有则新增表,假设有就不处理

      IF VN_COUNT < 1 THEN

        VC_STR := create table BT_BUY_PAY

    (

      id  NUMBER not null,

      buynumber     VARCHAR2(30),

      money     NUMBER(15,2),

      recevietime     DATE,

      recordtime    DATE,

      currency VARCHAR2(30),

      foreigncurrency  NUMBER(15,2),

      constraint PK_BT_BUY_PAY_ID primary key (id)

    )';

        EXECUTE IMMEDIATE VC_STR;

      END IF;

    END;

    2.添加字段

    --改动人:易小群

    --改动时间:2014-9-18

    --改动内容:採购合同表添加合同所属字段(本部和集团)

    DECLARE

      VN_COUNT     NUMBER;

      VC_STR        VARCHAR2(1000);

    BEGIN

      --查看该表中该字段是否存在

      SELECTCOUNT(*)

        INTO VN_COUNT

        FROM USER_TAB_COLUMNS

       WHERE TABLE_NAME ='BT_BUY_RECORD'AND COLUMN_NAME ='CONTRACTBELONG';

      IF VN_COUNT < 1 THEN

        VC_STR := ' ALTER TABLE BT_BUY_RECORD ADD CONTRACTBELONG VARCHAR2(30)';

        EXECUTE IMMEDIATE VC_STR;

      END IF;

    END;

    3.创建视图

    createorreplaceview v_bt_buy_fprecord_ceas

    selectdistinct b.corp_code,

           c.corp_name,--单位名称

           d.buynumber,--採购合同号

           b.buyname,--採购合同名称

           d.sale_no,--销售合同号

           d.product_id,--产品id

           d.product_name,--产品名称

           d.money,--明细金额

           b.htprice,--合同金额

           d.out_money,--已付金额

           vf.ymoney,--已开发票金额

           b.status

      from bt_buy_record b

      leftjoin bt_corp c

        on b.corp_code = c.corp_code

      leftjoin bt_buy_detail d

        on b.buynumber = d.buynumber

      leftjoin (select f.detail_id, sum(f.money)as ymoney

                   from bt_buy_fprecord f

                  groupby f.detail_id) vf

        on d.id = vf.detail_id

      orderby b.corp_code  ;

    4.改动表的字段同意为空

    --改动人:易小群

    --改动时间:2014911

    --改动内容:改动表BT_BUY_FPRECORD字段PRODUCE_NAME同意为空

    --改动原因:採购合同导入时报PRODUCE_NAMENULL不能插入

    DECLARE

      VN_NULLABLE VARCHAR2(1);

    BEGIN

      SELECT nullable

        INTO VN_NULLABLE

        FROM user_tab_columns

       WHERE table_name ='BT_BUY_FPRECORD'

         AND column_name ='PRODUCE_NAME';

      --假设不同意为空

      IF VN_NULLABLE = 'N'THEN

        --更改为同意为空

        EXECUTE IMMEDIATE' ALTER TABLE BT_BUY_FPRECORD MODIFY PRODUCE_NAME VARCHAR2(200) NULL ';

      END IF;

      COMMIT;

    END;

    5.改动字段长度

    --改动人:易小群

    --改动时间:201493

    --改动内容:改动表BT_BUY_DETAIL字段PRODUCT_NAME的长度

    --改动原因:导入时报其字段的长度不够 

    altertable BT_BUY_DETAIL modify(PRODUCT_NAME varchar2(500));

    --改动产品名称字段,发票表导入报其字段的长度不够

    altertable BT_BUY_FPRECORD modify(PRODUCT_NAME  varchar2(500));

    commit;

  • 相关阅读:
    poj 2528 Mayor's posters (线段树+离散化)
    poj 1201 Intervals (差分约束)
    hdu 4109 Instrction Arrangement (差分约束)
    poj 1195 Mobile phones (二维 树状数组)
    poj 2983 Is the Information Reliable? (差分约束)
    树状数组 讲解
    poj 2828 Buy Tickets (线段树)
    hdu 1166 敌兵布阵 (树状数组)
    Ubuntu网络配置
    Button控制窗体变量(开关控制灯的状态)
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5385609.html
Copyright © 2011-2022 走看看