循环体中的占位符和无参数 Toad 中的执行过程

Posted

技术标签:

【中文标题】循环体中的占位符和无参数 Toad 中的执行过程【英文标题】:Placeholder in loop body and executing procedure in Toad with no paramter 【发布时间】:2019-07-16 18:43:21 【问题描述】:

我有以下两个单独的简短问题。

1.) 我在 PL/SQL 中编写程序时遇到了一个问题,即 PL/SQL 中是否有类似于 python 的循环体占位符。例如,

if age>11
   pass   --Pass can placed in python code and program will run. Does anything like PASS exist in PL/SQL oracle?
elif
   pass
--

我尝试查看 oracle 文档,但找不到任何相关内容。

2). 如何在 Toad 的包内执行不带参数的程序 (v-12.6.0.53)。我尝试通过右键单击包来执行包,但除非我没有在其中添加参数,否则它不会给我运行程序的选项。

提前感谢您的帮助!

【问题讨论】:

【参考方案1】:

1.) 声明 NULL; is 占位符语句将满足块有语句的要求,但什么也不做:

if age>11 then
   null;
elsif age < 1 then
   null;
else ...

2.) 不再有 TOAD,但在 SQL 编辑器窗口中,您始终可以直接执行过程:

BEGIN
   mypackage.myproc();
end;

如果有一种方法可以通过模式浏览器更轻松地做到这一点......也许其他人可以阐明这一点

【讨论】:

谢谢!看起来 Toad 不支持无参数的 procs 模式。在此处发布以确认是否有人知道通过模式浏览器运行 procs 的方法,没有参数。 Sachin,你能扩展一下你的模式浏览器问题吗?我有一个包,其中包含一个没有参数的过程。我 rt-click,选择 Execute Package,选择我的过程,然后单击 OK。参数网格是空的,因为 proc 没有参数,这没关系。【参考方案2】:

没有参数的包过程不需要括号:

create or replace package  mypackage is
    procedure myproc;
end;     
create or replace package  body mypackage is
    procedure myproc 
    is
    begin 
        dbms_output.put_line('In mypackage.myproc');
    end ; 
end ;     

-- test  
begin 
    mypackage.myproc; 
end;  

【讨论】:

以上是关于循环体中的占位符和无参数 Toad 中的执行过程的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL:在 PQexecPrepared() paramValues 参数中给出的类型与占位符和类型之间的关系

缩小占位符文本后如何使占位符和文本框光标居中?

在 TOAD 中执行 Oracle 程序

Oracle / Toad 中的 For 循环

如何在 TOAD 中查看存储过程的输出

Spring实战bean装配的运行时值注入——属性占位符和SpEL