错误号 -746 允许您提供错误消息的正文。就像前面的示例,如果 new_qty 大于 1.50 倍 的 old_qty,以下示例也将生成错误。但是,在本例中,错误号为 -746,并且消息正文 Too many items for Mfr. 的项过多是作为 RAISE EXCEPTION 语句中的第三个参数提供的。有 关此语句的语法和使用的更多信息,请参阅创建和使用 SPL 例程 中的 RAISE EXCEPTION 语句。 CREATE PROCEDURE upd_items_p2()
GBase 8s SQL 指南:教程 南大通用数据技术股份有限公司 - 346 -
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 出版物。