如何从命令行调用 Oracle SQL 过程?

Posted

技术标签:

【中文标题】如何从命令行调用 Oracle SQL 过程?【英文标题】:How do I call an Oracle SQL procedure from the command line? 【发布时间】:2012-02-27 14:00:49 【问题描述】:

如何调用带参数的Oracle存储过程?

它有一个输入和一个输出参数,看起来像doSomething(IN x,OUT y);

如何从命令行调用它?

【问题讨论】:

【参考方案1】:

假设 SQL*Plus:

var v_result number
exec doSomething(42, :v_result);
print v_result

您可以将其放入 SQL 脚本中,然后通过命令行将其传递给 SQL*Plus。

【讨论】:

/****************/ 我在第 1 行收到此错误:ORA-06550:第 1 行,第 7 列:PLS-00201:标识符 'doSomething' 必须被声明 ORA-06550:第 1 行,第 7 列:PL/SQL:语句被忽略 V_1 ---------- V_2 ---------- @Anandhakrishnan -- 然后首先输入 DESCRIBE doSomething 以确保该过程存在、可访问并且具有您期望的签名 也许输出变量的类型不正确——你没有告诉我们参数类型是什么。 doSomething(x IN NUMBER,y OUT VARCHAR2(100));是签名。【参考方案2】:

试试这个

BEGIN
var v_outparam1 number;
var v_outparam2 number;
exec myProc(v_outparam1,v_outparam1);
END;
/

【讨论】:

您不会将这些行包含在 BEGIN/END 块中——它们是 SQLPlus 命令,而不是 PL/SQL 语句。

以上是关于如何从命令行调用 Oracle SQL 过程?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过命令行启动oracle

使用命令将存储过程查询从 sql 文件导入 Oracle DB

ORACLE——存储过程

sql如何批量进行执行存储过程并传参数?

图解MySql命令行创建存储过程

如何从 PL/SQL 过程执行“describe table_name”命令?