怎么解决呀?
解决方案 »
- Tode检索结果中文显示乱码
- 请问在pl/sql developer 中怎么导出比如以"FR_T"打头的表呢?另外pl/sql developer中的where语句是怎么写的?请大侠们指教!谢谢!
- 看看创建触发器有什么错?给分!
- 关于plsql中的一些问题: TYPE t_emp IS TABLE OF s_emp%ROWTYPE INDEX BY BINARY_INTEGER;
- SQL语句问题
- 高手进来!!!一个关于主从表联合查询的问题!!!
- 请教简单的问题!
- oracle 数据库备份问题!
- 请问过程为什么有时会失效,怎么解决?
- 大家好,请问一下学习ORACLE应从哪里入手,有什么好的办法没有.
- 没有错误,但出现编译错误??
- 请问"vstart"是什么参数?
执行SHOW ERROR 显示错误信息
表名传进来是为了拼在sql语句里,但oracle却不认识。
rResult out integer,--输出消息代码
rMesg out varchar2,--消息正文
iTableName out varchar2,--表名
iFieldName out varchar2--字段名
)
ISiTemp integer :=0;BEGIN
rResult := 0;
rMesg := '';
select count(*) into iTemp from into iTableName;
if iTemp!=0 then
select max(iFieldName) into iTemp from iTableName;
end if;
rMesg := TO_CHAR(iTemp+1);
END ;错误消息为:
PL/SQL: ORA-00903: 表名无效
也就是iTableName不存在,因为它确实不存在,怎么办?
在线等待!
---------- ---------- ---------- ----------
1 dfdf 2
1 2 01-5ÔÂ -02
1 2 20-8ÔÂ -02
1 df0 2SQL> CREATE OR REPLACE PROCEDURE SCOTT.testtablename (p_tablename in varchar2)
2 as
3 type v_refcursor is ref cursor;
4 v_temp v_refcursor;
5 i number;
6 begin
7 open v_temp for 'select id from ' || p_tablename || ' where id >0';
8 loop
9 fetch v_temp into i;
10 exit when v_temp%notfound;
11 dbms_output.put_line('i:' || i || ';');
12 end loop;
13 end;
14 /Procedure created.SQL> set serveroutput on
SQL> exec testtablename('test1')
i:1;
i:1;
i:1;
i:1;PL/SQL procedure successfully completed.
rResult out integer,--输出消息代码
rMesg out varchar2,--消息正文
iTableName in varchar2,--表名
iFieldName in varchar2--字段名
)
IS
i_sql varchar2(500);
iTemp integer :=0;BEGIN
rResult := 0;
rMesg := '';
i_sql:='select count(*) from '||iTableName;
execute immediate i_sql into iTemp ;
if iTemp!=0 then
i_sql:='select max('||iFieldName||') from '||iTableName;
execute immediate i_sql into iTemp;
end if;
rMesg := TO_CHAR(iTemp+1);
END ;