CREATE OR REPLACE PACKAGE pkg_test
AS
TYPE myrctype IS REF CURSOR;
END pkg_test;
/
CREATE OR REPLACE PROCEDURE GET_STU_INFO(p_cursor out pkg_test.myrctype) as
begin
open p_cursor for
'select * from stu_info';
end;
/
AS
TYPE myrctype IS REF CURSOR;
END pkg_test;
/
CREATE OR REPLACE PROCEDURE GET_STU_INFO(p_cursor out pkg_test.myrctype) as
begin
open p_cursor for
'select * from stu_info';
end;
/
解决方案 »
- 为什么我写的sql语句必需要把对象加上双引号才能执行?
- 急求:在表里有重复的某个字段,我只想要一个就可以。我要查表里所有 字段吆
- 官网上下的linux10的Linux版本是否可以不限制节点免费使用?
- oracle9i数据恢复问题。急死了......
- linux 下安装oracle 时碰到的错误libactionFile170.so: undefined symbol: stat
- 相同字段字符型的如何累加?
- 简单问题 tablespace 相当于SQL中的什么? 能说详细点吗?
- 关于用C++、.NET连接Oracle时候的SQL语句超时时间设置的问题
- 难道oracle8和oracle8i还不是一个 借了本oracle8和机器上的oracle8i怎么也对不上 他们的命名规则是怎么样的 为什么这么复杂
- 在SQL*Plus中,exit和quit这两个命令有什么不同??
- 有哪些工具能管理建立的表格呀
- 触发器的问题
TYPE myrctype IS REF CURSOR;--这条必需存在你的包头
TYPE myrctype IS REF CURSOR;--这条必需存在你的包头
TYPE myrctype IS REF CURSOR;--这条必需存在你的包头
包体内可以定义游标变量吗?如:
mycursor PKG_TEST.myrctype;
?
?
?
包中不可以定义游标变量。但可以声明游标变量类型。并可以为包中的过程函数作为参数类型去使用。!!!
包中不可以定义游标变量,游标变量即是一个指针。若在包中定义此变量。在包外使用时。这怎么使用??这个指针指向哪?
我试了一下,包体不可以定义游标变量!
to: tfrist(tfrist)
CREATE OR REPLACE PROCEDURE "SCOTT"."GET_STU_INFO"(p_cursor out comm_cursor) as
begin
open p_cursor for
select * from stu_info;
end;
只要我在包中实现了:comm_cursor,应该是可以open p_cursor的,因为我以前也是这样返回记录集的.
例子:
CREATE OR REPLACE PACKAGE pkg_test
AS
TYPE myrctype IS REF CURSOR; PROCEDURE get (p_id NUMBER, p_rc OUT myrctype);
END pkg_test;
/CREATE OR REPLACE PACKAGE BODY pkg_test
AS
PROCEDURE get (p_id NUMBER, p_rc OUT myrctype)
IS
sqlstr VARCHAR2 (500);
BEGIN
IF p_id = 0 THEN
OPEN p_rc FOR
SELECT ID, NAME, sex, address, postcode, birthday
FROM student;
ELSE
sqlstr :=
'select id,name,sex,address,postcode,birthday
from student where id=:w_id';
OPEN p_rc FOR sqlstr USING p_id;
END IF;
END get;
END pkg_test;
/