循环体中的占位符和无参数 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 参数中给出的类型与占位符和类型之间的关系