Oracle:不允许使用在插入语句中调用函数的符号参数?

Posted

技术标签:

【中文标题】Oracle:不允许使用在插入语句中调用函数的符号参数?【英文标题】:Oracle: Use of notational parameters which calling functions in insert statements not allowed? 【发布时间】:2010-04-22 00:03:04 【问题描述】:

为什么 Oracle 10 R2 不允许在插入语句中调用函数时使用符号参数?

在我的应用程序中,我在插入语句中调用了一个函数。如果使用参数传递的符号方法,我会收到 ORA-00907: Missing right parenthesis 错误消息

INSERT INTO foo
            (a,
             b,
             c)
VALUES      (c,
             F1(P1=>'1', P2=>'2', P3 => '3'),
             e)

将相同的更改为基于位置的参数传递,并且相同的代码被编译而没有错误。

INSERT INTO foo
            (a,
             b,
             c)
VALUES      (c,
             F1('1','2','3'),
             e) 

为什么会这样?

【问题讨论】:

【参考方案1】:

因为它是 added in 11g 的一个功能。

【讨论】:

在此之前,=> 只允许在从其他 PL/SQL 程序调用 PL/SQL 程序时使用。

以上是关于Oracle:不允许使用在插入语句中调用函数的符号参数?的主要内容,如果未能解决你的问题,请参考以下文章

oracle数据库插入特殊字符

Oracle - PLS-00642:SQL 语句中不允许本地集合类型

ORACLE存储过程里可以声明过程和函数吗

如何将符号/字符(例如:“²”或其他语言符号)从 oracle 数据库插入到 postgreSQL

使用 JDBC 连接在 Oracle 过程可调用语句中插入对象的 ArrayList 作为参数

oracle函数和存储过程有什么区别