因为它返回了一条记录,declare v tb_user_group.group_name%type; begin select group_name into v from tb_user_group where group_name = 'XXXX'; EXCEPTION when no_data_found then dbms_output.put_line(TO_CHAR(SQL%ROWCOUNT)); end; 这个查无数据就是返回0, 因为你用了count,无论有多少条记录,count = 0也好,3,4或者其他值也好sql%rowcount都会是1
sql%rowcount到底怎么用啊
begin
select group_name into v from tb_user_group where group_name = 'XXXX';
EXCEPTION
when no_data_found then
dbms_output.put_line(TO_CHAR(SQL%ROWCOUNT));
end; 这个查无数据就是返回0,
因为你用了count,无论有多少条记录,count = 0也好,3,4或者其他值也好sql%rowcount都会是1
单纯的SELECT
应该sql%rowcount就返回0了
1、 从如下三道试题中选择两道做答。每题50分。如果多做,则取得分最高的两道作为成绩。
2、 每道题已经提供初步的框架,请在此框架上继续完成代码。
3、 不要改动代码框架中已有的类名。
试题一
预备知识一:
生产者-消费者模式。在通信软件开发中,经常涉及到消息的处理,实现时会采用生产者-消费者模式:在同一个进程地址空间内执行的两个线程。生产者线程产生消息,然后将消息放置在一个缓冲区中供消费者线程处理。消费者线程从缓冲区中读取消息进行处理。当生产者线程产生消息时,如果缓冲区满,那么生产者线程必须等待消费者线程处理完消息以释放缓冲区。当消费者线程在读取消息进行处理时,如果缓冲区中没有消息,那么消费者线程将被阻塞,直到有消息被生产出来。
预备知识二:
平时的开发过程中,经常涉及到xml文件的解析,实现xml文件到java bean的转换。当前有个xml文件,在不允许使用第三方jar的情况下解析xml文件,并根据member节点建立member对象。文件格式如下:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<member>
<name></name>
<age></age>
<grade></grade>
</member>
……
</root>
在输入文件中(文件类型为xml文件),存放话务员的基本信息。该文件中的话务员信息是乱序并且有可能重复的,现在需要输出每位话务员的信息,对于重复的信息只能输出一次。要求如下:
1、需要把话务员信息使用集合类缓存起来,并且集合中的信息必须唯一(姓名+年龄唯一)。
2、输出话务员信息,输出格式为:姓名(年龄):成绩|姓名(年龄):成绩,依次按照成绩、姓名、年龄升序排列。
3、启动两个线程分别做如下处理:
线程一:对于话务员年龄小于(包含)18岁的,成绩统一加10分。并把话务员信息依次按照成绩、姓名、年龄升序的方式输出到一个队列中。队列的大小不能超过10个。
线程二: 现有两个分公司(A,B)依次选择话务员,如:A选择第一个话务员后,B再选择一个,依次类推,直到话务员被选完。最后,分别输出A,B两个分公司所选择的话务员信息,输出格式为:姓名(年龄):成绩|姓名(年龄):成绩,依次按照成绩、姓名、年龄升序排列。
文件格式(参见随试题一起提供的附件文件input.xml):
<?xml version="1.0" encoding="UTF-8"?>
<root>
<member>
<name>Jack1</name>
<age>18</age>
<grade>70</grade>
</member>
<member>
<name>Appl2</name>
<age>20</age>
<grade>70</grade>
</member>
<member>
<name>Appl2</name>
<age>20</age>
<grade>70</grade>
</member>
<member>
<name>Appl2</name>
<age>20</age>
<grade>72</grade>
</member>
<member>
<name>Adpl2</name>
<age>20</age>
<grade>73</grade>
</member>
<member>
<name>ccpl2</name>
<age>20</age>
<grade>75</grade>
</member>
<member>
<name>bppl2</name>
<age>20</age>
<grade>75</grade>
</member>
</root>
命令行使用接口:
java MemberMain 文件名
“MemberMain”参数是需要实现的主程序类名,该类有main方法public static void main(String[] args),是程序的入口;
“文件名”参数就是包含话务员信息的文件,例如input.xml,文件位于与运行程序相同目录下,无需考虑文件路径的问题。