zoukankan      html  css  js  c++  java
  • 关于Forms_ddl的应用

          最近开发一个Form,需要用动态SQL,在网上搜索,发现可以用Forms_ddl来实现。试了很久,不成功,后发现是字符串连接的方式有问题,修正后终于OK. 以下是代码,供大家参考!

    DECLARE

       CURSOR c1

       IS

          SELECT COUNT (1)

            FROM  inv_customs_items

           WHERE inventory_items = :find.inventory_items;

       v_count             NUMBER;

       p_attribute_no       VARCHAR2 (30);

       p_attribute          VARCHAR2 (30);

       p_sql               VARCHAR2 (200);

       p_inventory_items    VARCHAR2 (30);

       p_user_id           NUMBER;

    BEGIN

       IF :find.inventory_items IS NULL

       THEN

          show_alert_message ('Inventory_items 必须输入!');

          RAISE form_trigger_failure;

       END IF;

       OPEN c1;

       FETCH c1

        INTO v_count;

       CLOSE c1;

       IF v_count < 1

       THEN

          INSERT INTO inv_customs_items

                      (inventory_items, created_by, creation_date

                      )

               VALUES (:find.inventory_items, :parameter.user_id, SYSDATE

                      );

       END IF;

       p_user_id:= :parameter.user_id;

       GO_BLOCK ('item');

       FIRST_RECORD;

      

       LOOP

          EXIT WHEN :item.attribute_name IS NULL;

          p_attribute_no := :item.attribute_no;

          p_attribute := :item.ATTRIBUTE;

          p_inventory_items := :find.inventory_items;

          BEGIN

             p_sql :=

                   'update INV_CUSTOMS_ITEMS set LAST_UPDATE_DATE=sysdate,LAST_UPDATED_BY='

                || to_char(p_user_id)

                || ','

                || p_attribute_no

                || '= '''

                || p_attribute

                || ''' where inventory_items ='''

                || p_inventory_items

                || '''';

             FORMS_DDL (p_sql);

          EXCEPTION

             WHEN OTHERS

             THEN

                show_alert_message ('保存失败!');

                RAISE form_trigger_failure;

          END;

          NEXT_RECORD;

       END LOOP;

       COMMIT_FORM;

       FIRST_RECORD;

       show_alert_message ('恭喜您,保存成功');

    END;

    欢迎转载,但请注明出处!
  • 相关阅读:
    linux中的 tar命令的 -C 参数,以及其它一些参数
    dockerfile 介绍
    linux安装mysql后root无法登录
    centos搭建本地yum源,
    centos7下载自定义仓库的镜像设置方法
    QT TCP文件上传服务器
    QT UDP聊天小程序
    QT 网络编程三(TCP版)
    QT 网络编程二(UDP版本)
    QT 网络编程一
  • 原文地址:https://www.cnblogs.com/kevinsun/p/3064804.html
Copyright © 2011-2022 走看看