你这个是sqlserver的写法,ORACLE的存储过程只有通过游标类型返回结果集
只能是这样.
CREATE OR REPLACE PACKAGE UP_002 AS
TYPE MYCURSOR IS REF CURSOR; //游标类型
FUNCTION GETRECORD RETURN MYCURSOR;
END;CEEATE OR REPLACE PACKAGE BODY UP_002 AS
FUNCTION GETRECORD RETURN MYCURSOR AS
MC MYCURSOR;
BEGIN
OPEN MC FOR SELECT * FROM 表名 where ...;//通过游标类型返回结果集
RETURN MC;
END;
END;
只能是这样.
CREATE OR REPLACE PACKAGE UP_002 AS
TYPE MYCURSOR IS REF CURSOR; //游标类型
FUNCTION GETRECORD RETURN MYCURSOR;
END;CEEATE OR REPLACE PACKAGE BODY UP_002 AS
FUNCTION GETRECORD RETURN MYCURSOR AS
MC MYCURSOR;
BEGIN
OPEN MC FOR SELECT * FROM 表名 where ...;//通过游标类型返回结果集
RETURN MC;
END;
END;
CREATE PRODUCE SELECT_XDSL_GROUP(
STARTDATE IN DATE,
ENDDATE IN DATE)
AS
BEGIN
insert into tmp_xdsl_group
SELECT * FROM SO_XDSL_GROUP WHERE DATE BETWEEN STARTDATE AND ENDDATE;
END;
关键是SO_XDSL_GROUP表不是我创建的,是DBA用户创建的,我是否没这访问这张表的权限?
SELECT * FROM 用户名.SO_XDSL_GROUP WHERE ...
而且你要有权限,没权限就让别人给你啊,或者让管理员给grant select any table to you.
http://jianghaifeng.bokee.com/4576057.html
解决了
但是再问下哈,我执行了grant select any table to you后怕被DBA发现要改回原来的权限,是不是执行revoke select any table to you就可以了?