+ -
当前位置:首页 → 问答吧 → 错误提示:FROM keyword not found where expected不知问题何在

错误提示:FROM keyword not found where expected不知问题何在

时间:2011-11-28

来源:互联网

在pl/sql中学习oracle。编了一个函数gettablecount,内容如下所示:
create or replace function gettablecount(table_name varchar2) return number as
begin
declare record_count number;
query_sql varchar2(200);
begin
query_sql:='select count(1) from' || table_name ;
execute immediate query_sql into record_count;
return record_count;
end;
end gettablecount;


现想验证函数功能,便运行以下程序:
SQL> declare table_name varchar2(50);
  2 begin
  3 table_name:='employees';
  4 dbms_output.put_line('表' || table_name || '的记录数为' || gettablecount(table_name));
  5 end;
  6 /

结果提示出错为:
ORA-00923: FROM keyword not found where expected
ORA-06512: at "SYSTEM.GETTABLECOUNT", line 7
ORA-06512: at line 5

就是不知道毛病出在哪里?请大侠们指正。

作者: xihaisheren   发布时间: 2011-11-28

SQL code
query_sql:='select count(1) from' || table_name ;
--问题在这里, from 与表名之间缺少一个空格
--拼出来的的SQL就成了
SELECT COUNT(1) fromemployees;
--修改如下:

query_sql:='select count(1) from ' || table_name ;--加空格
query_sql:='select count(1) from' || chr(32)|| table_name ;--chr(32为空格)

作者: yinan9   发布时间: 2011-11-28