博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle 测试语句
阅读量:4842 次
发布时间:2019-06-11

本文共 2927 字,大约阅读时间需要 9 分钟。

一、简单测试

declare l_card_id number;        v_result  varchar2(1000);begin    select t.card_id into l_card_id from (          select t.rowid from sup_card t           where t.card_id = 41          order by t.card_No desc,t.up_load_date asc          ) R     inner Join sup_card t on R.Rowid = t.rowid           where rownum < 2;        if (l_card_id is null) then       v_result := 'It is null';    elsif (l_card_id = 0) then        v_result := 'Zero';    else       v_result := l_card_id;    end if;        dbms_output.put_line(v_result); end;
View Code

split_type的理解、使用: 

declare  l_auto_i   integer;  l_sup_list split_type;begin  l_sup_list := em_f_split(&liststr);  l_auto_i := l_sup_list.first;  while l_auto_i is not null loop      dbms_output.put_line(l_auto_i || ':' || l_sup_list(l_auto_i));      -- 进1    l_auto_i := l_sup_list.next(l_auto_i);  end loop;  dbms_output.put_line('END');end;
View Code

 

 

问题:1. 如果查询card_id的数据没有,那么t.card_id into l_card_id时,将抛出异常

2. elseif 的写法是 elsif,少了个e.

二、参数是游标的测试

1 declare 2   xx bp_platform_order%rowtype; 3   cursor cur is 4     select * from bp_platform_order o where o.product_no = '4'; 5 begin 6   open cur; 7   loop 8     fetch cur 9       into xx;10     exit when cur%notfound;11     dbms_output.put_line('**=' || xx.platform_order_id);12   end loop;13   close cur;14 end;
游标行

 

1 declare 2   xx varchar2(1000); 3   yy number; 4   cursor cur is 5     select o.platform_order_id,o.order_status from bp_platform_order o where o.product_no = '4'; 6 begin 7   open cur; 8   loop 9     fetch cur10       into xx,yy;11     exit when cur%notfound;12     dbms_output.put_line('**=' || xx);13   end loop;14   close cur;15 end;
游标列

三、可以输入值得测试

1 declare 2   -- Non-scalar parameters require additional processing  3   result   split_type; 4   l_auto_i integer; 5 begin 6   -- 必须用&标记输入变量 7   -- 在弹出的框中输入测试值时,字符串必须用‘’包起来 8   result   := bp_f_split(&p_str, &p_delimiter); 9   l_auto_i := result.first;10   while l_auto_i is not null loop11   12     dbms_output.put_line(to_char(l_auto_i) || '=>' ||13                          to_char(result(l_auto_i)));14     if (result(l_auto_i) is null) then15       dbms_output.put_line(to_char(l_auto_i) || '****null');16     end if;17     l_auto_i := result.next(l_auto_i);18   end loop;19 end;
可以输入值

 

 

四、 while循环

1 declare 2   l_card_id number; 3   v_result  varchar2(1000); 4   l_date    date := trunc(sysdate, 'mm'); 5   l_result1 number; 6   l_result2 number; 7   l_result3 number; 8 begin 9   while l_date > to_date('20140701', 'yyyymmdd') loop10   11     begin12     13       l_date := l_date - 1;14 15       dbms_output.put_line(to_char(l_date, 'yyyy-mm-dd: ') ||16                            to_char(l_result1) || '' || to_char(l_result2) ||17                            to_char(l_result3));18     19     end;20   21   end loop;22 23   dbms_output.put_line('over!!');24 end;
While按日期循环

 

 

转载于:https://www.cnblogs.com/Denny_Yang/archive/2013/01/17/2864232.html

你可能感兴趣的文章
IDEA快捷键
查看>>
【tmos】spring boot项目中处理Schedule定时任务
查看>>
Nginx+certbot 实现泛域名的https证书
查看>>
python实现链表(一)
查看>>
多层下firebird自增长字段的处理
查看>>
JS输入输出等补充
查看>>
转android四种动画
查看>>
初学android:四大组件之contentprovider
查看>>
1289大鱼吃小鱼(STL中栈的应用)
查看>>
POJ3177 Redundant Paths
查看>>
初学树
查看>>
Hibernate延迟加载
查看>>
在子页面使用layer弹出层时只显示遮罩层,不显示弹出框问题
查看>>
<吴恩达老师深度学习笔记一>深度学习概述
查看>>
smarty 模板标签
查看>>
第二阶段团队冲刺(十)
查看>>
001- CreateProcess failed with error 216 (no message available)错误详解
查看>>
菜根谭#205
查看>>
菜根谭#222
查看>>
java-01-java基础知识1
查看>>