声明 PL/SQL 过程/函数时是不是必须使用“IN”和“OUT”关键字?
Posted
技术标签:
【中文标题】声明 PL/SQL 过程/函数时是不是必须使用“IN”和“OUT”关键字?【英文标题】:Are the 'IN' and 'OUT' key words compulsory when declaring a PL/SQL procedure/function?声明 PL/SQL 过程/函数时是否必须使用“IN”和“OUT”关键字? 【发布时间】:2013-06-09 00:13:29 【问题描述】:我现在正在学习PL/SQL,遇到了一些误区,比如在声明一个过程的时候,在指明参数类型的时候一定要写关键字'IN'和'OUT'吗?因为我在 Oracle 文档网站上看到了一些程序声明。在一种情况下,IN 出现在参数列表中
PROCEDURE double (
original IN VARCHAR2,
new_string OUT VARCHAR2
) AS
BEGIN
new_string := original || original;
END;
BEGIN
DBMS_OUTPUT.PUT_LINE ....
在另一种情况下没有IN:
CREATE OR REPLACE PROCEDURE award_bonus (
emp_id NUMBER, bonus NUMBER) AS
commission REAL;
comm_missing EXCEPTION;
BEGIN
SELECT ....
“IS”和“AS”这两个关键词有什么区别吗?
【问题讨论】:
【参考方案1】:在Oracle PLSQL 中,共有三种参数模式——IN
、OUT
和IN OUT
。不必指定IN
模式。如果不指定参数模式,则取为IN
。对于其他两个,您应该指定模式。在您的第二个示例中,两个参数都被视为IN
。
您可以使用IS
和AS
关键字中的任何一个。没有区别。
查看documentation了解更多详情。
【讨论】:
以上是关于声明 PL/SQL 过程/函数时是不是必须使用“IN”和“OUT”关键字?的主要内容,如果未能解决你的问题,请参考以下文章
PL/SQL 函数中的 XmlRoot、XmlElement、InsertChildXml 给出 PLS-00201 必须声明标识符