生成可变错误消息

错误号 -746 允许您提供错误消息的正文。就像前面的示例,如果 new_qty 大于 1.50 倍的 old_qty,以下示例也将生成错误。但是,在本例中,错误号为 -746,并且消息正文 Too many items for Mfr. 的项过多是作为 RAISE EXCEPTION 语句中的第三个参数提供的。有关此语句的语法和使用的更多信息,请参阅创建和使用 SPL 例程 中的 RAISE EXCEPTION 语句。
CREATE PROCEDURE upd_items_p2()
   DEFINE GLOBAL old_qty INT DEFAULT 0; 
   DEFINE new_qty INT;
   LET new_qty = (SELECT SUM(quantity) FROM items); 
   IF new_qty > old_qty * 1.50 THEN
      RAISE EXCEPTION -746, 0, 'Too many items for Mfr.';
   END IF
END PROCEDURE;
如果使用 DB-Access 提交触发语句,并且如果 new_qty 大于 old_qty,那么您将得到下图显示的结果。

图: 带有用户指定消息正文的错误号 -746

Press CTRL-W for Help 
SQL:   New  Run  Modify  Use-editor  Output  Choose  Save  Info  Drop  Exit
Modify the current SQL statements using the SQL editor.

-------------------- store7@myserver --------- Press CTRL-W for Help -----

INSERT INTO items VALUES( 2, 1001, 2, 'HRO', 1, 126.00);














746: Too many items for Mfr. 

如果在 SQL API 中通过 SQL 语句调用触发器,那么数据库服务器将 sqlcode 设置为 -746,并在 SQL 通信区域(SQL;CA)的sqlerrm 字段中返回消息正文。有关如何使用 SQL;CA 的更多信息,请参阅您的 SQL API 出版物。