oracle - PL/SQL 中无法选择 count(*)

标签 oracle plsql

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;

我无法获取rec_count valibale 中的计数。我收到 ORA-00905 消息。

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

提前致谢。

最佳答案

你必须像下面这样使用

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;

into 子句必须在立即执行之后使用。引用这里http://docs.oracle.com/cd/B12037_01/appdev.101/b10807/13_elems017.htm了解更多信息

关于oracle - PL/SQL 中无法选择 count(*),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27939158/

相关文章:

regex - PL/SQL函数返回带有正则表达式特殊字符的字符串

sql - Talend:使用已定义的字符串/参数查询数据库

plsql - PL/SQL - IN CLAUSE 中的逗号分隔列表

sql - 为什么 SUM(null) 在 Oracle 中不是 0?

选择与表值函数连接中的 Oracle 标量函数

sql-server - 在 Postgres、HSQL、MSSQL 中,应该使用什么数据类型来替代 bool 值?

SQL - 比较两组

ruby OCI8 初始化缓慢

oracle - 在 PL/SQL 中,如何在*不*使用 INTO 的 SELECT 中使用变量?

oracle - 具有两列的 LISTAGG 函数