【问题标题】:not all variables bound (Simple query)并非所有变量都绑定(简单查询)
【发布时间】:2022-01-14 14:14:53
【问题描述】:

我编写了一个超级简单的测试,试图获取存储在 l_numTables 中的值,但它不断抛出错误“并非所有变量都绑定”。只有一个变量。它是一个数字,应该适用于 COUNT(*) 的返回数据类型。我在这里有什么遗漏吗? (从 SSMS 迁移到 Oracle 很艰难)

declare l_numTables number := 0;

begin
    select COUNT(*) 
      into :l_numTables 
      from all_tab_columns 
     where column_name like '%TEST%';

    DBMS_OUTPUT.put_line(l_numTables);
end;

【问题讨论】:

  • 去掉:l_numTables的冒号。

标签: sql oracle


【解决方案1】:

INTO 子句不是SELECT 语句的一部分,它完全是一个 PL/SQL 构造。 l_numTables 不是绑定变量(它不是 SQL 语句的一部分,即使它出现在它的中间)。删除冒号前缀,看看会发生什么 - 我没有检查其余部分是否正常。

【讨论】:

  • 太棒了,做到了。谢谢你,Mathguy!
猜你喜欢
  • 2021-12-11
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
  • 2022-07-08
  • 2011-09-22
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多