好象不太可能,帮你UP吧。楼主这个问题和ATGC的那个存储过程是连起来的吧。我觉得还是通过临时表的方法比较好
解决方案 »
- ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的 SID
- 请教一个ORACLE中遇到多次都无法解决的问题
- oracle 联网连接问题
- oracle 触发器实现 集思广益
- SQL Plus 如何执行 begin end 之中的语句
- tnsping 提示“TNS-12541: TNS:无监听器”,请指教!
- 解决打过震荡波补丁之后oracle无法正常启动的问题
- 帮我想个PROCEDURE的算法
- 散分第二贴,25日就可以回家了,不知大家怎么样,祝大家过一个好年!
- 求助修改数据SQL编写
- "ALTER session enable parallel DML"这句的含义是什么?谢谢
- 因函数中的死循环,我该如何解锁呢?
TYPE LibCurTyp IS REF CURSOR;
...
END cv_types;CREATE PROCEDURE find_item (title VARCHAR2(100),lib_cv IN OUT cv_types.LibCurTyp) AS
code BINARY_INTEGER;
BEGIN
SELECT item_code FROM titles INTO code WHERE item_title = title;
IF code = 1 THEN
OPEN lib_cv FOR SELECT * FROM books WHERE book_title = title;
ELSIF code = 2 THEN
OPEN lib_cv FOR SELECT * FROM periodicals WHERE periodical_title = title;
ELSIF code = 3 THEN
OPEN lib_cv FOR SELECT * FROM tapes WHERE tape_title = title;
END IF;
END find_item;DECLARE
lib_cv cv_types.LibCurTyp;
book_rec books%ROWTYPE;
periodical_rec periodicals%ROWTYPE;
tape_rec tapes%ROWTYPE;
BEGIN
get_title(:title); -- title is a host variable
find_item(:title, lib_cv);
FETCH lib_cv INTO book_rec;
display_book(book_rec);
EXCEPTION
WHEN ROWTYPE_MISMATCH THEN
BEGIN
FETCH lib_cv INTO periodical_rec;
display_periodical(periodical_rec);
EXCEPTION
WHEN ROWTYPE_MISMATCH THEN
FETCH lib_cv INTO tape_rec;
display_tape(tape_rec);
END;
END;