【问题标题】:Viewing the value of the variable in Oracle Sql Developer在 Oracle Sql Developer 中查看变量的值
【发布时间】:2018-05-19 04:53:26
【问题描述】:

我对 Oracle-PLSQL 完全陌生。我必须将TSQL 函数转换为PLSQL。所以我需要声明变量,在其中设置值并使用它们。这是一个非常非常简单的代码:

declare LoopCounter INT ;
begin
      Select MIN(RankNumber) into LoopCounter 
      From 
      (
            Select  Substation , ColumnTitle,S6_name,AVNR
            ,Rank() Over(Order By Substation , ColumnTitle,S6_name)  RankNumber
            From PREREPORT
      )  RankGroup;

 end;

此代码现在正在 Sql Developer 中进行测试。如何检查变量 LoopCounter ? 我已将 SET SERVEROUTPUT 设置为 ON 并使用 DBMS_OUTPUT.PUT_LINE(LoopCounter);用于显示值的值,但没有显示任何内容。 谢谢

【问题讨论】:

  • @KaushikNayak:我添加了行 DBMS_OUTPUT.PUT_LINE(LoopCounter);启用 dbms_output 和缓冲区大小 20000 。但它什么也没显示
  • 您使用的是哪个工具?您是否尝试过添加SET SERVEROUTPUT ON
  • @KaushikNayak:是的,我已经设置好了。我正在使用 Oracle SQL Developer。
  • 您是否检查过运行查询,它是否返回任何行?

标签: oracle plsql oracle11g oracle-sqldeveloper


【解决方案1】:

在 SQL-Developer 中选择 View/dbms output 选项。 dbms-output 窗格应出现在窗口的某处。

接下来单击此窗格中的绿色 plus 大图标,然后在此处选择您的活动会话。此会话应出现在此窗格中,请参阅下面的打印屏幕


接下来执行该过程 - 只需按 Ctrl-Enter 即可运行它。这是我的测试程序:

DECLARE
  x int;
BEGIN
  SELECT count(*) INTO x 
  FROM dual;
  DBMS_OUTPUT.PUT_LINE( x );
END;
/

该过程完成后,您应该会在 DBMS 输出窗格中看到 DBMS_OUTPUT.PUT_LINE 命令的结果:

[

【讨论】:

  • @krokodiko:我已经完成了您提到的确切步骤,但在 DBMS 输出中没有显示任何内容
  • 尝试重新启动 SQLDev...你的 SQLDev 有点奇怪,这肯定可以工作。
【解决方案2】:

我使用了相同的代码,但使用不同的表它可以完美运行。如果你能得到一些结果,我建议单独检查 SQL 语句。(检查 LiveSQL.oracle.com 中的代码)

declare  
LoopCounter INT ; 
begin 
      Select MIN(RankNumber) into LoopCounter  
      From  
      ( 
            Select  ename , Job,mgr 
            ,Rank() Over(Order By ename , job,mgr)  RankNumber 
            From scott.emp 
      )  RankGroup; 

      dbms_output.put_line(Loopcounter); 

 end;

【讨论】:

  • 我已经做到了,它什么也没显示。我已经提到了我在上面所做的事情。
  • 我们在您的代码块结束后运行 dbms_output.get_line() 以显示来自缓冲区 @nnmmss 的输出 - 确保您的会话在 dbms_output 上具有适当的权限 - 它已授予 PUBLIC,因此不应该是一个问题,但你永远不知道有人对他们的数据库安装/配置做了什么
  • 'Select Substation , ColumnTitle,S6_name,AVNR ,Rank() Over(Order By Substation , ColumnTitle,S6_name) RankNumber From PREREPORT' 检查上述代码是否返回任何数据
猜你喜欢
  • 2010-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-11
  • 1970-01-01
  • 2017-06-07
  • 2020-05-28
相关资源
最近更新 更多