oracle存储过程2
随机拿几个食品,食品的总和等于某个价格
create table test1234 ( id number);
insert into test1234 values(10);
insert into test1234 values(20);
insert into test1234 values(30);
insert into test1234 values(40);
insert into test1234 values(50);
create or replace procedure fun_id(v in number, v_ex_id in number)
is
v_flag number := 0;
v_id number := 0;
v_rest number := 0;
begin
select count(1) into v_flag from test1234 where id = v;
if v_flag > 0 then
select id into v_id from test1234 where id = v;
dbms_output.put_line(v_id);
else
select count(1) into v_flag from test1234 where id < v and id not in (v_ex_id);
if v_flag > 0 then
select id into v_id from
(select * from test1234 where id < v and id not in (v_ex_id) order by dbms_random.value)
where rownum <= 1;
dbms_output.put_line(v_id);
v_rest := v - v_id;
fun_id(v_rest,v_id);
else
dbms_output.put_line('No record found');
end if;
end if;
end fun_id;
/
execute fun_id(70, 0);
相关文档:
在Oracle中建库,通常有两种方法。一是使用Oracle的建库工
且DBCA,这是一个图形界面工且,使用起来方便且很容易理解,因为它的界面友好、美观,而且提示也比较齐全。在Windows系统中,这个工具可以在Oracle程序组中打开(”开始”—“程序”—“ Oracle OraDb10g_home1”&mdash ......
1,什么是游标?
①从表中检索出结果集,从中每次指向一条记录进行交互的机制。
②关系数据库中的操作是在完整的行集合上执行的。
由 SELECT 语句返回的行集合包括满足该语句的 WHERE 子句所列条件的所有行。由该语句返回完整的行集合叫做结果集。
&n ......
Oracle 三种集合数据类型的比较:
PL/SQL中没有数组的概念,他的集合数据类型和数组是相似的。在7.3以前的版本中只有一种集合,称为PL/SQL表,在这之后又有两种集合数据类型:嵌套表和varray。其中varray集合中的元素是有数量限制的,index_by表和嵌套表是没有这个限制的。index-by表是稀疏的,也就是说下标可以不连续 ......
Oracle Database 10g 提供了一个显著改进的工具:自动工作负载信息库 (AWR:Automatic Workload Repository)。Oracle 建议用户用这个取代 Statspack。AWR 实质上是一个 Oracle 的内置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。与 Statspack 不同,快照由一个称为 MMON 的新的后 ......
最近一段时间一直没写博客,不是懒,是学了太多东西。以后慢慢补上。 1. odbc中添加oracle数据源 odbc中添加oracle数据源首要条件:安装oracle client。安装完之后添加,但是还必须在安装目录下通常是C:\oracle\ora90\network\ADMIN\tnsnames.ora中添加一个连接,如下格式: DXS =
(DESCRIPTION =
......