sql - db2函数中的raise_application_error

标签 sql error-handling db2

我正在尝试在db2函数中使用raise_application_error,如下所示。

当我尝试创建该函数时,db2告诉我以下内容

   An unexpected token "raise_application_error" was found following 
   "id is null then ".  Expected tokens may include:  "RETURN".  LINE

允许它在函数中使用还是仅用于存储过程?

什么是功能的有效替代品?
     create or replace function get_stuff(id integer)
     returns varchar(10)
     language sql reads sql data
     begin    
             declare toreturn   varchar(10);

             if id Is null then
                   raise_application_error(-20000,'Id Missing)
             end if;
             --set (toreturn)=select ...///
             return toreturn;
     end@

最佳答案

如果要编写IBM SQL PL,则应定义信号的文本

SIGNAL SQLSTATE VALUE '20000'
 SET MESSAGE_TEXT = 'Id Missing';

如果要在DB2中编写PL/SQL,则应确保将兼容性 vector 设置为ORA:http://publib.boulder.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.apdv.porting.doc/doc/r0052867.html

关于sql - db2函数中的raise_application_error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18143816/

相关文章:

mysql查询删除where子句中的空格

php - 通过Aptana创建新的PHP项目

perl - <DATA> 在 Perl 错误消息中是什么意思?

windows - 通过命令行以人类可读的格式导出 DB2 模式?

java - [ibm][db2][jcc][t4][2055][11259] 由于分发协议(protocol)错误而执行失败

sql - SQL 数据库中查询的最短时间顺序是多少?

java - jOOQ - dao - 插入对象的主键

sql - FROM 子句中子选择的 Oracle 语法?

node.js - 请求超时时,nodejs http.request关闭过程

java - DB2 AS400 Java 函数始终返回相同的值