Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 无法在PL/SQL中选择计数(*)_Oracle_Plsql - Fatal编程技术网

Oracle 无法在PL/SQL中选择计数(*)

Oracle 无法在PL/SQL中选择计数(*),oracle,plsql,Oracle,Plsql,我无法在rec_count Valible中获得计数。我收到了ORA-00905信息 我必须在脚本中添加这些行,所以sql语句应该是这样的。 我将把trip名称传递给这个脚本,它将返回该表的计数 提前感谢。您必须像下面这样使用 DECLARE rec_count integer default 0; str varchar(100); BEGIN str := 'select count(*) into ' || rec_count ||' from emp_table';

我无法在rec_count Valible中获得计数。我收到了ORA-00905信息

我必须在脚本中添加这些行,所以sql语句应该是这样的。 我将把trip名称传递给这个脚本,它将返回该表的计数


提前感谢。

您必须像下面这样使用

DECLARE
  rec_count integer default 0;
  str varchar(100);
BEGIN
    str := 'select count(*) into ' || rec_count ||' from emp_table';
    EXECUTE IMMEDIATE (str);
    dbms_output.put_line(rec_count);
END;

into
子句必须在
executeimmediate
之后使用。有关更多信息,请参阅此处正确的方法是
将立即str执行到rec\u count中。执行立即执行时必须使用
INTO
子句

DECLARE
  rec_count integer default 0;
  str varchar(100);
BEGIN
    str := 'select count(*) from emp_table';
    EXECUTE IMMEDIATE str into rec_count;
    dbms_output.put_line(rec_count);
END;

谢谢你的帮助。关于这一点,我还有一个问题,如何通过sqlplus在命令行中查看过程的输出。您必须使用
将serveroutput设置为on
。你看到我的答案了吗?@abidkhan303是的,正如拉利特所说
SQL> set serveroutput on
SQL> DECLARE
  2    rec_count integer default 0;
  3    str varchar(100);
  4  BEGIN
  5      str := 'select count(*) from emp';
  6      EXECUTE IMMEDIATE str into rec_count;
  7      dbms_output.put_line(rec_count);
  8  END;
  9  /
14

PL/SQL procedure successfully completed.

SQL>