易截截图软件、单文件、免安装、纯绿色、仅160KB

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系列:记录Record

 Oracle系列:记录(Record)
一,什么是记录(Record)?
 由单行多列的标量构成的复合结构。可以看做是一种用户自定义数据类型。组成类似于多维数组。
将一个或多个标量封装成一个对象进行操作。是一种临时复合对象类型。
 
 记录可以直接赋值。RECORD1 :=RECORD2;
 记录不可以整体比较. ......

Oracle 表空间基本操作

 
1. 查询数据库现在的表空间
select tablespace_name, file_name, sum(bytes)/1024/1024 table_size from dba_data_files group by tablespace_name,file_name;
 
2. 建立表空间
CREATE TABLESPACE data01 DATAFILE '/oracle/ ......

oracle forall语句

 FORALL语句的一个关键性改进,它可大大简化代码,并且对于那些要在PL/SQL程序中更新很多行数据的程序来说,它可显著提高其性能。
1:
用FORALL来增强DML的处理能力
Oracle为Oracle8i中的PL/SQL引入了两个新的数据操纵语言(DML)语句:BULK COLLECT和FORALL。这两个语句在PL/SQL内部进行一种数组处理
;BULK COLLE ......

oracle client连接

最近一段时间一直没写博客,不是懒,是学了太多东西。以后慢慢补上。 1. odbc中添加oracle数据源 odbc中添加oracle数据源首要条件:安装oracle client。安装完之后添加,但是还必须在安装目录下通常是C:\oracle\ora90\network\ADMIN\tnsnames.ora中添加一个连接,如下格式: DXS =
  (DESCRIPTION =
  ......

关于Oracle 01122,01110,01207的错误和解决

 原创于2007年04月12日,2009年10月15日迁移至此。
windows xp,数据库oracle 10.2.0。1
没有备份,基本上是默认安装,好像还不是归档模式
症状:sqlplus只有sysdba用户能进去,其他用户进去一概报:ora-01033:oracle正在初始化或关闭
而且sysdba用户进去之后能执行select sysdate from dual,但是执行select use ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号