Oracle 无法在PL/SQL中选择计数(*)
我无法在rec_count Valible中获得计数。我收到了ORA-00905信息 我必须在脚本中添加这些行,所以sql语句应该是这样的。 我将把trip名称传递给这个脚本,它将返回该表的计数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';
提前感谢。您必须像下面这样使用
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>