在 Oracle Sql Developer 中查看变量的值

Posted

技术标签:

【中文标题】在 Oracle Sql Developer 中查看变量的值【英文标题】:Viewing the value of the variable in 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);用于显示值的值,但没有显示任何内容。 谢谢

【问题讨论】:

见docs.oracle.com/cd/E11882_01/timesten.112/e21645/… @KaushikNayak:我添加了行 DBMS_OUTPUT.PUT_LINE(LoopCounter);启用 dbms_output 和缓冲区大小 20000 。但它什么也没显示 您使用的是哪个工具?您是否尝试过添加SET SERVEROUTPUT ON @KaushikNayak:是的,我已经设置好了。我正在使用 Oracle SQL Developer。 您是否检查过运行查询,它是否返回任何行? 【参考方案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' 检查上述代码是否返回任何数据

以上是关于在 Oracle Sql Developer 中查看变量的值的主要内容,如果未能解决你的问题,请参考以下文章

Oracle SQL Developer 连接 MySQL

pl/sql developer中文乱码,为啥呢?怎么解决?Oracle问题

pl/sql developer中文乱码,为啥呢?怎么解决?Oracle问题

pl/sql developer中文乱码,为啥呢?怎么解决?Oracle问题

ORACLE PL/SQL:在 Oracle SQL Developer 中测试 SELECT FOR UPDATE

pl/sql developer和sql developer有啥区别?