如何在 tableplus 中创建函数或过程

Posted

技术标签:

【中文标题】如何在 tableplus 中创建函数或过程【英文标题】:how to create a function or a procedure in tableplus 【发布时间】:2020-02-21 01:43:29 【问题描述】:

我正在尝试在表中创建一个简单的 oracle 函数,并且我总是在

中收到以下错误

“查询 1 错误:ORA-24344: 编译错误成功”

以下是我用来执行的功能。

CREATE OR REPLACE EDITIONABLE FUNCTION "PMD_OWNER"."GET_SUM"
  (first_num INT, second_num INT) 
return INT 
IS 
  var_ret INT;  
BEGIN  
  var_ret := first_num + second_num  ;    
  return var_ret; 
END GET_SUM;

【问题讨论】:

【参考方案1】:

我怀疑您的 Oracle 数据库版本低于 12c。 EDITIONABLE 在 11g 或更低版本中无法使用 - 我建议您删除该关键字。

CREATE OR REPLACE FUNCTION pmd_owner.get_sum (first_num INT, second_num INT)
   RETURN INT
IS
   var_ret  INT;
BEGIN
   var_ret := first_num + second_num;
   RETURN var_ret;
END get_sum;

另外——尽管与你的问题无关——不要习惯在 Oracle 对象中使用双引号;在问题出现之前避免问题。

【讨论】:

我仍然遇到同样的错误。 “错误:ORA-24344:编译错误成功”。相同的语句在其他数据库软件如 Dbvever 中也适用,在 dbvever 中我们执行额外的步骤以使函数创建成功,我们在创建函数后右键单击并编译函数。我在 table plus 中找不到类似的选项。你知道有什么命令可以用来编译函数吗? 尝试运行select * From user_errors;,它将显示您遇到的错误。因为,这个函数没有任何错误也许跟主人有关; pmd_owner是谁?是你吗?如果是这样,您可以省略它。如果是其他人,那么您必须获得在其架构中创建对象的权限。

以上是关于如何在 tableplus 中创建函数或过程的主要内容,如果未能解决你的问题,请参考以下文章

如何在存储过程中创建视图

如何从 SQL 脚本、JDBC 或 Spring JdbcTemplate 在 MySQL 中创建函数?

如何在 Sequelize 中的导入模型中创建自定义方法或函数

如何在打开游标之前在存储过程中创建一个临时表?

如何在 Redshift 中创建自定义聚合 UDF 函数?

如何在过程中创建用户定义的异常?