:SYSTEM.BLOCK_STATUS 控制BLOCK的插入操作

  题记:近日在做一个考察报告录入的form开发,遇到这样一个问题:有一个界面本来只能录入一次数据,但是当我录入数据不保存, 然后再点击新建或者KEY-DOWN键,界面被刷新了,再输入数据保存,会同时保存两条数据。

  分析:

打开界面时,:SYSTEM.BLOCK_STATUS='NEW',此时点击新建或者KEY-DOWN键,会提示:FRM-40102:记录必须被插入或删除。

        界面数据发生变化时,:SYSTEM.BLOCK_STATUS='CHANGED',此时点击新建或者KEY-DOWN键,界面被刷新,输入的是第二条数据。

        保存或查询时,:SYSTEM.BLOCK_STATUS='QUERY',此时点击新建或者KEY-DOWN键,界面被刷新,输入的是第二条数据。

  解决方案:在需要控制的BLOCK中加入WHEN-CREATE-RECORD触发器,在根据:SYSTEM.BLOCK_STATUS的值进行控制。

      IF :SYSTEM.BLOCK_STATUS = 'QUERY' THEN
             RAISE Form_Trigger_Failure;--阻止程序继续进行
    ELSIF :SYSTEM.BLOCK_STATUS = 'CHANGED' THEN

           --给有好提示

            FND_MESSAGE.SET_STRING('请在继续前先保存所做更改。');

            FND_MESSAGE.SHOW;

             RAISE Form_Trigger_Failure;
 END IF;

 

 

考试 现有程序:在命令行中用“ ls_hdfs /user ”命令实现对HDFS文件系统中目录“ /user ”下的文件的文件名、文件块的大小、文件内容长度打印显示,如下图:请填空,实现全部程序功能。 (图像) public class ls_hdfs { static FileSystem fs = null; //连接文件系统 static void init() throws Exception { // 构造一个配置参数对象,设置一个参数:我们要访问的hdfs的URI Configuration conf = new Configuration(); // 指定HDFS文件系统的namenode节点为:192.168.121.134,服务端口为:9000 空1:_________________________________ // 设置客户端身份为:root System.setProperty("HADOOP_USER_NAME", "root"); // 通过FileSystem的静态方法获取文件系统客户端对象 空2:_________________________________ } //显示文件列表 static void ListFiles(String dir) throws FileNotFoundException, IllegalArgumentException, IOException { // 获取迭代器对象 while (fileList.hasNext()) { LocatedFileStatus fileStatus = fileList.next(); // 打印当前文件名 String fileName=fileStatus.getPath().getName(); 空4:_________________________________ // 打印当前文件块大小 空5:_________________________________ System.out.println(fileBlock); // 打印当前文件内容长度 Long fileLong=fileStatus.getLen(); System.out.println(fileLong); } //关闭文件系统 空6:_________________________________ } public static void main(String[] args) throws Exception { //连接HDFS init(); //显示文件列表 空7:_________________________________ } }
06-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值