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;

  • 相关阅读:
    DB2中的ROW_NUMBER() OVER()函数用法 转
    各个数据库分页语句汇总
    db2导出DDL
    db2数据库操作
    在myeclipse+tomcat中出现org.apache.juli.logging.LogFactory这样的错误,为什么?
    spring的事务管理有几种方式实现 (转自:http://blog.csdn.net/bopzhou/article/details/7094108)
    JAVA 判断一个字符串是不是一个合法的日期格式
    oracle添加字段 与 db2 添加字段
    ajax详细讲解
    Js 时间间隔计算(间隔天数)
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5385609.html
Copyright © 2011-2022 走看看