(
p_tname in varchar2 ,
result out sys_refcursor
)
as
begin
OPEN result FOR SELECT * FROM p_tname;
end;
错误提示:
Line # = 8 Column # = 19 Error Text = PL/SQL: SQL Statement ignored
Line # = 8 Column # = 33 Error Text = PL/SQL: ORA-00942: 表或视图不存在
p_tname in varchar2 ,
result out sys_refcursor
)
as
begin
OPEN result FOR SELECT * FROM p_tname;
end;
错误提示:
Line # = 8 Column # = 19 Error Text = PL/SQL: SQL Statement ignored
Line # = 8 Column # = 33 Error Text = PL/SQL: ORA-00942: 表或视图不存在
解决方案 »
- oracle新手调试程序,有了以后不用纠结了!
- 用toad连64位oracle11g
- 随机函数的问题
- 100分,如何避免ORACLE的死锁
- 急100分!求update语句怎么写?
- 使用客户端如何连接到服务端?
- exp导出失败的问题
- 怎样知道某一个存储过程是否正在执行!!!!
- 导出数据库表中的部分字段,UP有分!
- 谁知道可以在2000下运行的informix客户端工具,可以浏览数据,调试存储过程的。类似于oracle的PL/SQL Developer。谢谢了,送您100分
- oracle数据库执行update语句时弹出Execution time
- oralce 11g 32位 for linux RH5 安装神奇问题
参考返回游标的例子
EMP数据库例子
CREATE OR REPLACE PROCEDURE P_RETR_CURSOR
(P_ID IN NUMBER,
P_RECSET OUT SYS_REFCURSOR) AS
--Created by xsb on 2004-11-09 For: 存储过程返回记录集
BEGIN
OPEN P_RECSET FOR
SELECT e.empno,e.ename
FROM emp e
WHERE empno = P_ID;
END;DECLARE
I NUMBER;
S VARCHAR2(100);
M SYS_REFCURSOR;
BEGIN
FOR J IN 7900..7902 LOOP
P_RETR_CURSOR(J, M);
FETCH M
INTO I, S;
DBMS_OUTPUT.PUT(I || '-');
DBMS_OUTPUT.PUT_LINE(S);
CLOSE M;
END LOOP;
END;
/
-- 动态语句
... ...
is
stmt varchar2(1000);
begin
stmt:='select * from '||p_tname; open result for stmt;
end;
/
(
p_tnamein varchar2,
result out sys_refcursor
)
as
begin
OPEN result for select *from p_tname;
end;首先,p_tname这个表预先存在,不然就会报错!